7.22 Day 3
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 int n,m,ct,dir[4][2]={{0,1},{0,-1},{1,0},{-1,0}}; 5 char mp[101][101]; 6 bool vis[101][101]; 7 void s(int sx, int sy) 8 { 9 for(int i=0;i<4;++i) 10 { 11 int x=sx+dir[i][0],y=sy+dir[i][1]; 12 if(x>=1&&x<=n&&y>=1&&y<=m&&vis[x][y]==false&&mp[x][y]!='0') 13 { 14 vis[x][y]=true; 15 s(x,y); 16 } 17 } 18 } 19 int main() 20 { 21 cin>>n>>m; 22 for(int i=1;i<=n;++i) 23 for(int j=1;j<=m;++j) 24 cin>>mp[i][j]; 25 for(int i=1;i<=n;++i) 26 for(int j=1;j<=m;++j) 27 { 28 if(vis[i][j]==false&&mp[i][j]!='0') 29 { 30 vis[i][j]=true; 31 s(i,j); 32 ct++; 33 } 34 } 35 cout<<ct; 36 return 0; 37 }
上为:1329 细胞 源代码
#include<bits/stdc++.h> using namespace std; int a[101]; int m,n; void s(int k){ int i; if(k>m){ for(i=1;i<=m;i++){ cout<<setw(3)<<a[i]; } cout<<endl; return; } for(i=a[k-1]+1;i<=n;i++){ a[k]=i; s(k+1); } return; } int main(){ cin>>n>>m; s(1); return 0; }
上为:DFS 组合的输出 源代码
今日完成上面2题