社区讨论
卧龙凤雏!
P3395路障参与者 6已保存回复 10
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 10 条
- 当前快照
- 1 份
- 快照标识符
- @m1cz7y96
- 此快照首次捕获于
- 2024/09/22 10:45 去年
- 此快照最后确认于
- 2025/11/04 19:57 4 个月前
今日,蒟蒻让蒟蒻改一下他的错误,于是蒟蒻试图帮他改一下代码,结果蒟蒻与蒟蒻都很蒟蒻,是一对卧龙凤雏!!!
这是这位蒟蒻的代码:
CPP#include<bits/stdc++.h>
using namespace std;
int t,n,x,y,cnt=1,f[1002][1002];
bool vis[1002][1002];
int dx[4]={1,-1,0,0},dy[4]={0,0,1,-1};
queue<pair<int,int> >q;
int main(){
cin>>t;
while(t--){
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
vis[i][j]=0;
f[i][j]=-1;
}
f[1][1]=0;
q.push({1,1});
while(!q.empty()){
pair<int,int> k=q.front();q.pop();
int bx=k.first,by=k.second;
if(f[bx][by]==cnt and cnt<=2*n-2){
cin>>x>>y;
vis[x][y]=1;
cnt++;
}
for(int i=0;i<4;i++){
int nx=bx+dx[i],ny=by+dy[i];
if(nx<1 or ny<1 or nx>n or ny>n or f[nx][ny]!=-1 or vis[nx][ny]) continue;
f[nx][ny]=f[bx][by]+1;
q.push({nx,ny});
}
}
if(f[n][n]==-1) cout<<"No"<<endl;
else cout<<"Yes"<<endl;
}
return 0;
}
只有1测试点对了,其他都错了!
这是本蒟蒻的代码:
CPP#include<bits/stdc++.h>
using namespace std;
int t, n;
int dx[4] = {1, -1, 0, 0};
int dy[4] = {0, 0, 1, -1};
int main() {
cin >> t;
while (t--) {
cin >> n;
vector<vector<int>> f(n + 2, vector<int>(n + 2, -1));
queue<pair<int, int>> q;
q.push({1, 1});
f[1][1] = 0;
for (int time = 0; time < 2 * n - 2; ++time) {
int size = q.size();
for (int i = 0; i < size; ++i) {
pair<int, int> k = q.front(); q.pop();
int bx = k.first, by = k.second;
for (int j = 0; j < 4; ++j) {
int nx = bx + dx[j], ny = by + dy[j];
if (nx >= 1 && nx <= n && ny >= 1 && ny <= n && f[nx][ny] == -1) {
f[nx][ny] = time + 1;
q.push({nx, ny});
}
}
}
int x,y;
cin >> x >> y;
f[x][y] = -2;
}
if (f[n][n] == -1) {
cout << "No" << endl;
} else {
cout << "Yes" << endl;
}
}
return 0;
}
只有1测试点错了,其他都对了!
所以我们还要再来一名蒟蒻,帮我们解决一下这美妙的问题w(゚Д゚)w!
回复
共 10 条回复,欢迎继续交流。
正在加载回复...