http://codeforces.com/problemset/problem/723/D

dfs找出每个湖,保存坐标和大小,按大小排序,填充湖即可,注意湖的数量最多会有1250个。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define INF 0x3f3f3f3f
using namespace std;int n,m,k,dir[][2] = {-1,0,0,-1,1,0,0,1},ok,cnt = 0,sizee,vis[55][55] = {0};
char mp[55][55];struct lake
{int x,y,cnt;
}l[1300];bool cmp(struct lake a,struct lake b)
{return a.cnt < b.cnt;
}void dfs1(int x,int y)
{vis[x][y] = 1;sizee++;for(int i = 0;i < 4;i++){int xx = x+dir[i][0],yy = y+dir[i][1];if(xx < 0 || yy < 0 || xx >= n || yy >= m){ok = 0;continue;}if(mp[xx][yy] == '*' || vis[xx][yy])    continue;dfs1(xx,yy);}
}void dfs2(int x,int y)
{mp[x][y] = '*';for(int i = 0;i < 4;i++){int xx = x+dir[i][0],yy = y+dir[i][1];if(xx < 0 || yy < 0 || xx >= n || yy >= m)    continue;if(!vis[xx][yy])    continue;vis[xx][yy] = 0;dfs2(xx,yy);}
}int main()
{scanf("%d%d%d",&n,&m,&k);getchar();int x = 0;while(gets(mp[x++]));for(int i = 0;i < n;i++){for(int j = 0;j < m;j++){sizee = 0;ok = 1;if(mp[i][j] == '.' && !vis[i][j]){dfs1(i,j);if(ok){l[cnt].x = i;l[cnt].y = j;l[cnt++].cnt = sizee;}}}}sort(l,l+cnt,cmp);int endd = cnt-k,ans = 0;for(int i = 0;i < endd;i++){ans += l[i].cnt;dfs2(l[i].x,l[i].y);}printf("%d\n",ans);for(int i = 0;i < n;i++)    puts(mp[i]);return 0;
}

转载于:https://www.cnblogs.com/zhurb/p/5930004.html

Codeforces_723_D相关推荐

最新文章

  1. 通过解决“构造包含所有给定子串的最短字符串”问题思考算法优化
  2. matplotlib安装错误依赖问题解决
  3. 叶明哲 | 数据中心空调文章集锦
  4. k8s pod的三类调度策略:资源限制策略、nodeSelector标签选择器、硬/软亲和性
  5. [译] Python 2.7.6 标准库——详见github
  6. 关于判断函数凸或凹以及最优化的问题
  7. oracle 连接数_Oracle多租户数据库资源管理,就这么简单
  8. 【哈工大SCIR Lab】Attention!注意力机制可解释吗?
  9. (第十一周)规格说明书练习作业——吉林市一日游
  10. Unknown run configuration type AndroidRunConfigurationType的解决办法
  11. 主流流媒体服务器软件,十款免费的流媒体服务器软件介绍
  12. 手机怎样设置每年自动生日提醒
  13. 微信小程序绘制canvas图片
  14. 在数据为王的人工智能时代如何收集机器学习数据
  15. flinkcdc实时监测oracle数据库某张表的变化
  16. 如何测一个纸杯_如何测试一个纸杯
  17. iPhone文件管理连接服务器,iOS11文件管理器怎么用?Files文件管理器使用方法与功能介绍...
  18. ad stm8l 热电偶_STM8L之ADC
  19. 2018ICPC北京赛总结
  20. MOS管选型参数:VGS(th)

热门文章

  1. 华硕顽石5代尺寸_华硕顽石5代FL8000一定适合你_华硕 FL8000UN8550_笔记本导购-中关村在线...
  2. 网站记录蜘蛛来访次数
  3. 用万元级回音壁看电竞比赛是什么感受?飞利浦Fidelio B97回音壁初体验
  4. 在家如何复刻影院级震撼视听体验?|Fidelio 招牌B97有料测评
  5. OpenGL入门(四)之纹理Texture
  6. idea打包war包
  7. wps使用latex编辑公式
  8. 建筑能耗管理系统,大型公共建筑电能耗的监测及能源管理迫在眉睫!
  9. 解决使用下拉组件报错:Error in callback for watcher “focusing“: “TypeError: Cannot set property className......
  10. RPackage007---smbinning