codeforces 375D dfs+模拟
来源:互联网 发布:网络作家协会好加入吗 编辑:程序博客网 时间:2024/06/06 11:38
点击打开链接
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N=1e3+20;char g[N][N];int n,m,k,vis[N][N],res;bool flag;struct Move{int x;int y;int k;//.个数 }off[4]={{-1,0},{1,0},{0,-1},{0,1}},num[N*N];void dfs(int x,int y,int op){res++;if(op==2)g[x][y]='*';if((x==0||x==n-1||y==0||y==m-1)&&g[x][y]=='.'&&op==1)//connecet to border {flag=false;res=0;return;}vis[x][y]=1;for(int i=0;i<4;i++){int a=x+off[i].x;int b=y+off[i].y;if(a>=0&&a<n&&b>=0&b<m&&!vis[a][b]&&g[a][b]=='.'){if(op==1)dfs(a,b,1);if(op==2)dfs(a,b,2);}}}bool cmp(Move a,Move b){return a.k<b.k; }int main(){memset(vis,0,sizeof(vis));cin>>n>>m>>k;for(int i=0;i<n;i++)scanf("%s",g[i]);int cnt=0;for(int i=0;i<n;i++)//计算每个water的.个数 {for(int j=0;j<m;j++){flag=true;res=0;if(!vis[i][j]&&g[i][j]=='.'){dfs(i,j,1);if(flag){num[cnt].k=res;num[cnt].x=i; num[cnt++].y=j;//记录连通块中任意一点即可 }}}}int ans=0;memset(vis,0,sizeof(vis));sort(num,num+cnt,cmp);for(int i=0;i<=cnt-1-k;i++)//只保留k个 {ans+=num[i].k;dfs(num[i].x,num[i].y,2);} cout<<ans<<endl;for(int i=0;i<n;i++)printf("%s\n",g[i]);return 0;}
0 0
- codeforces 375D dfs+模拟
- Codeforces Round #375 (Div. 2)【A,B【模拟】,D【DFS】】
- Codeforces 797D Broken BST dfs+模拟
- codeforces 598D dfs
- 【codeforces 723D 】 + DFS
- CodeForces 327D(DFS)
- codeforces 157D 模拟
- Codeforces 637D 模拟
- Codeforces 665D 模拟
- Codeforces 669D 模拟
- Codeforces 863D 模拟
- Codeforces D. Wormhouse (dfs+剪枝)
- Codeforces 69D Dot(DFS)
- Codeforces #386 D dfs+bitset
- codeforces 723D(DFS)
- Codeforces 740D dfs+二分
- 【Codeforces 711 D D. Directed Roads】 + DFS
- CodeForces #589 D Boulevard 模拟
- 设计模式(1) 单例模式--创建型
- scrapy爬虫框架将数据保存Mysql数据库中
- jquery实现table新增、删除行,并实现sum统计
- Android检测当前是否在主线程内
- POI
- codeforces 375D dfs+模拟
- 自定义密码输入框
- Android实现推送方式解决方案
- nginx安装
- scala基础5 —— 类的继承
- Android postTranslate和preTranslate的理解
- MyEclipse+SVN+Maven安装详细过程
- wifi AP驱动移植与使用
- C#中MySql数据库连接