
坐标广东,现在不知道分数线,吃饭睡觉上whk满脑子都是这个事,我在睡觉别人说一句“复赛”都能把我叫醒的那种
为了防止这个帖子太水了,P1004 全RE样例没过求调
#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read()
{
int suffm=0,sym=1;
char chr=getchar();
while(chr<'0'||chr>'9'){if(chr=='-') sym=-1;chr=getchar();}
while(chr>='0'&&chr<='9'){suffm=(suffm<<3)+(suffm<<1)+(chr^48);chr=getchar();}
return suffm*sym;
}
inline void write(int suffm)
{
if(suffm<0){putchar('-');suffm=-suffm;}
if(suffm>9) write(suffm/10);
putchar(suffm%10+48);
}
const int N=9+3;
bool vis[N][N];
int ma[N][N];
int n;
int ans=-1145141919810;
int dx[]={1,0};
int dy[]={0,1};
void dfs(int x1,int x2,int y1,int y2,int sum)
{
if(x1==n&&x2==n&&y1==n&&y2==n)
{
ans=max(ans,sum);
return ;
}
for(int i=0;i<2;i++)
{
for(int j=0;j<2;j++)
{
if(i==j) continue;
int xx1=x1+dx[i],yy1=y1+dy[i];
int xx2=x2+dx[j],yy2=y2+dy[j];
if(!vis[xx1][yy1]&&!vis[xx2][yy2]) //&&->|| ?
{
vis[xx1][yy1]=vis[xx2][yy2]=true;
dfs(xx1,xx2,yy1,yy2,sum+ma[xx1][yy1]+ma[xx2][yy2]);
vis[xx1][yy1]=vis[xx2][yy2]=false;
}
}
}
}
signed main()
{
n=read();
while(true)
{
int kkk1=read(),kkk2=read(),kkk3=read();
if(kkk1==0&&kkk2==0&&kkk3==0) break;
ma[kkk1][kkk2]=kkk3;
}
dfs(1,1,1,1,0);
write(ans);
return 0;
}
另外验证码CCSP祭