蒟蒻求救

P1454 圣诞夜的极光

那个我的提交记录有几遍有问题,提交错位置了
by ___I_AK_IOI @ 2018-09-13 22:05:04


[传送门](https://www.luogu.org/record/show?rid=10728708)
by ___I_AK_IOI @ 2018-09-13 22:06:01


@[白哥小葱](/space/show?uid=54520) 我没过这道题,你把代码给我们看看啊~
by wxy_god @ 2018-09-13 22:08:49


@[我是一个垃圾](/space/show?uid=89396) 点一下传送门就好啦
by ___I_AK_IOI @ 2018-09-13 22:09:54


@[白哥小葱](/space/show?uid=54520) 我说,我没到60分,我是看不见你的代码的,能不能把代码贴出来
by wxy_god @ 2018-09-13 22:11:25



by ___I_AK_IOI @ 2018-09-13 22:11:46


// luogu-judger-enable-o2 // luogu-judger-enable-o2 // luogu-judger-enable-o2 #include<cstdio> #include<iostream> #include<cstring> #include<string> using namespace std; int dx[12]={-2,2,-1,1,0,0,0,0,1,1,-1,-1}; int dy[12]={0,0,0,0,-1,1,-2,2,1,-1,-1,1}; int n,m; char emmm[900][900]; int a[900][900]; int dfs(int x,int y) { int i; for(i=0;i<12;i++) { int u=x+dx[i]; int v=y+dy[i]; if(a[u][v]==0&&u>=1&&v<=n&&u>=1&&v<=m) { a[u][v]=1; dfs(u,v); } } return 0; } int main() { cin>>n>>m; int i,j; memset(emmm,0,sizeof(emmm)); for(i=0;i<=n+1;i++) for(j=0;j<=m+1;j++) a[i][j]=1; for(i=1;i<=n;i++) for(j=1;j<=m;j++) { cin>>emmm[i][j]; if(emmm[i][j]=='#')a[i][j]=0; } int sum; sum=0; for(i=1;i<=n;i++) for(j=1;j<=m;j++) { if(a[i][j]==0){ a[i][j]=1; dfs(i,j); sum++; } } cout<<sum; return 0; }
by ___I_AK_IOI @ 2018-09-13 22:12:05


```cpp // luogu-judger-enable-o2 // luogu-judger-enable-o2 // luogu-judger-enable-o2 #include<cstdio> #include<iostream> #include<cstring> #include<string> using namespace std; int dx[12]={-2,2,-1,1,0,0,0,0,1,1,-1,-1}; int dy[12]={0,0,0,0,-1,1,-2,2,1,-1,-1,1}; int n,m; char emmm[900][900]; int a[900][900]; int dfs(int x,int y) { int i; for(i=0;i<12;i++) { int u=x+dx[i]; int v=y+dy[i]; if(a[u][v]==0&&u>=1&&v<=n&&u>=1&&v<=m) { a[u][v]=1; dfs(u,v); } } return 0; } int main() { cin>>n>>m; int i,j; memset(emmm,0,sizeof(emmm)); for(i=0;i<=n+1;i++) for(j=0;j<=m+1;j++) a[i][j]=1; for(i=1;i<=n;i++) for(j=1;j<=m;j++) { cin>>emmm[i][j]; if(emmm[i][j]=='#')a[i][j]=0; } int sum; sum=0; for(i=1;i<=n;i++) for(j=1;j<=m;j++) { if(a[i][j]==0){ a[i][j]=1; dfs(i,j); sum++; } } cout<<sum; return 0; } ```
by ___I_AK_IOI @ 2018-09-13 22:12:19


可以用bfs的
by Doubleen @ 2018-09-13 22:22:55


@[白哥小葱](/space/show?uid=54520) 我长这么大,还没有见过dfs能够产生双色结果。 一般要么全WA,要么全RE 你的代码有一个AC,说明是爆栈
by origin_star @ 2018-09-13 22:34:29


| 下一页