D. Lakes in Berland
来源:互联网 发布:淘宝玻璃钢化粪罐 编辑:程序博客网 时间:2024/06/05 04:30
D. Lakes in Berland
题目地址:
http://codeforces.com/problemset/problem/723/D
AC代码
#include<cstdio>#include<algorithm>#include<string.h>using namespace std;struct node//存储某个湖的其中的一片水位置以及面积{ int x,y,s;}n[4000];//设置一些需要的变量 char map[51][51];//湖的结构int n1,m,k;//n1行 m列 k留下的湖的数量 int book[51][51],lake_num,lake_area,dx[4]={0,0,1,-1},dy[4]={1,-1,0,0}; int flag; int are; // int cmp(node a,node b) { return a.s<b.s; } //靠海湖设置flag标记 flag标记为0 则表示为靠海湖 不计入湖的数量 void dfs(int x,int y)//查找湖 并且记录湖的面积 { lake_area++; book[x][y] = 1; for(int i=0;i<4;i++) { int newx=dx[i]+x; int newy=dy[i]+y; if(newx < 0 || newy < 0 || newx > n1-1 || newy > m-1){ lake_area = 0,flag = 0; continue; } if(map[newx][newy] == '*' || book[newx][newy]) continue; dfs(newx,newy); } }void dfs1(int x,int y)//填湖 { map[x][y]='*'; for(int i=0;i<4;i++) { int newx=dx[i]+x; int newy=dy[i]+y; if(map[newx][newy]=='.') dfs1(newx,newy); }}int main(){ scanf("%d%d%d",&n1,&m,&k); for(int i=0;i<n1;i++) { scanf("%s",map[i]); } //初始化 memset(book,0,sizeof(book)); lake_num=0; lake_area=0; // for(int i=0;i<n1;i++) { for(int j=0;j<m;j++) { lake_area=0;flag=1; if(map[i][j]=='.'&&!book[i][j]) { dfs(i,j); if(flag) { n[lake_num].x=i; n[lake_num].y=j; n[lake_num++].s=lake_area; } } } } //按照湖的面积进行排序 因为需啊求出填最小的水块数 所以先填水块少的湖 sort(n,n+lake_num,cmp); int summ=0; for(int i=0;i<lake_num-k;i++) { summ+=n[i].s; dfs1(n[i].x,n[i].y); } printf("%d\n",summ); for(int i=0;i<n1;i++) printf("%s\n",map[i]); return 0;}
代码AC时间 2017-7-19 00:47
文章完成时间2017-7-19 16:50
阅读全文
1 0
- D. Lakes in Berland
- D. Lakes in Berland
- D.Lakes in Berland(DFS)
- Codeforces723 D. Lakes in Berland (BFS)
- 【29.70%】【codeforces 723D】Lakes in Berland
- codeforces 723D. Lakes in Berland [DFS]【】
- codeforce#375D. Lakes in Berland
- codeforces 723D Lakes in Berland
- Codeforces 723D - Lakes in Berland
- codeforces 723 D. Lakes in Berland
- CodeForces 723D Lakes in Berland DFS
- Codeforeces - 723D -Lakes in Berland
- D. Lakes in Berland 【dfs+贪心】
- Codeforces 723D Lakes in Berland
- Lakes in Berland
- Codeforces #375(Div.2)D. Lakes in Berland【Bfs】
- [codeforces] D. Lakes in Berland [dfs and similar]
- Codeforces Round #375 (Div. 2) D. Lakes in Berland
- Bagging和Boosting 概念及区别
- 确保非局部静态对象使用前被初始化
- scala中_的作用
- 实现 AlertDialog 点击确定按钮不关闭
- LeetCode-501. Find Mode in Binary Search Tree(Java)
- D. Lakes in Berland
- 30分钟搭建Java后端开发环境
- 表的垂直拆分和水平拆分
- 最大公约数与最小公倍数(gcd,lcm)
- Original error: Could not transfer artifact org.apache.maven.plugins:maven-surefire-plugin:pom:2.7.1
- linux命令---pidstat
- 【loj】#6006. 「网络流 24 题」试题库(二分图匹配)
- web中 checkbox的全选
- 设置导航栏选中状态