社区讨论
50分,求调
P10379[GESP202403 七级] 俄罗斯方块参与者 2已保存回复 8
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 8 条
- 当前快照
- 1 份
- 快照标识符
- @mhja1ca4
- 此快照首次捕获于
- 2025/11/03 23:10 4 个月前
- 此快照最后确认于
- 2025/11/03 23:10 4 个月前
记录详情
CPP#include<bits/stdc++.h>
using namespace std;
int n,m,a[505][505],dx[4]={-1,1,0,0},dy[4]={0,0,-1,1},p;
bool f[505][505];
string s;
string c[250005];
void dfs(int x,int y){
queue<int> qx;
queue<int> qy;
qx.push(x);
qy.push(y);
while(!qx.empty()){
int tx=qx.front();
int ty=qy.front();
qx.pop();
qy.pop();
for(int k=0;k<4;k++){
int ttx=tx+dx[k];
int tty=ty+dy[k];
if(ttx>=1&&ttx<=n&&tty>=1&&tty<=m&&f[ttx][tty]==0&&a[ttx][tty]==a[tx][ty]){
s+=(k+'0');
f[ttx][tty]=1;
qx.push(ttx);
qy.push(tty);
// dfs(ttx,tty);
}
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(f[i][j]==0){
s="";
f[i][j]=1;
dfs(i,j);
bool f=1;
for(int k=1;k<=p;k++){
if(c[k]==s){
f=0;
break;
}
}
if(f){
c[++p]=s;
}
}
}
}
cout<<p;
return 0;
}
6-10WA了懵逼
回复
共 8 条回复,欢迎继续交流。
正在加载回复...