社区讨论
求助
P1713麦当劳叔叔的难题参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lo18ttcr
- 此快照首次捕获于
- 2023/10/22 17:05 2 年前
- 此快照最后确认于
- 2023/11/02 16:55 2 年前
TLE了9个点
记录链接
55分代码:
CPP#include <bits/stdc++.h>
using namespace std;
int n,m,x,y,a[12][12],flag[15][15],first=0x7ffffff,last=-1;
int f[15][15],d[15][15],u[15][15];
inline int dfs(int now,int x,int y) {
if(x>n||y>n||x<1||y<1||flag[x][y]==1)return 0;
if(now>first&&now<u[x][y])return 0;
f[x][y]=now;
if(x==1&&y==n) {
if(first>now) {
for(register int i=1;i<=n;i++) {
for(register int j=1;j<=n;j++) {
d[i][j]=f[i][j];
}
}
first=now;
}
if(last<now) {
for(register int i=1;i<=n;i++) {
for(register int j=1;j<=n;j++) {
u[i][j]=f[i][j];
}
}
last=now;
}
return 0;
}
flag[x][y]=1;
dfs(now+1,x+1,y);
dfs(now+1,x-1,y);
dfs(now+1,x,y+1);
dfs(now+1,x,y-1);
flag[x][y]=0;
f[x][y]=0;
return 0;
}
int main() {
scanf("%d%d",&n,&m);
for(register int i=1;i<=m;i++) {
scanf("%d%d",&x,&y);
flag[x][y]=1;
}
for(register int i=1;i<=n;i++) {
for(register int j=1;j<=n;j++) {
u[i][j]=-1;
d[i][j]=0x7ffffff;
}
}
dfs(1,n,1);
printf("%d",last-first);
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...