卫星照片
来源:互联网 发布:淘宝发布图片尺寸 编辑:程序博客网 时间:2024/04/29 11:56
题目
农夫 John 正在研究他的农场的卫星照片.照片为一个R (1 <=
R <= 75) 行 C (1 <= C <= 75) 列的字符矩阵表示.如下图:
..................
..#####.......##..
..#####......##...
..................
#.......###.....#.
#.....#####.......
图上的一块相连通的 "#" 表示一群奶牛或一个房间, 两个子"#" 连通的意思是说左右或上下相连.而下面的两块则是分开的:
....
.#..
..#.
....
John现在根据卫星照片上的的这些"#"块的形状来判断哪些是牛群,哪些是房间.如果一个"#"块形状的边是水平或垂直的矩形,则是房间.其它的则认为都是牛群.在第一个图中,有三个房间 ( 2x1, 2x5, and 1x1)和2群牛.
请根据输入文件中的数据,统计出房间数和牛群数.
数据中牛群不会包围另一个牛群或房间.
Input
* 第一行,两个整数: R 和 C.
* 和 2..R+1行: 第 i+1 行表示照片的第 i 行情况,由 C 字符组成.
Output
* 第一行: 房间数.
* 第二行: 牛群数.
Sample Input
5 8#####..######.##......#..###...#.###..##
Sample Output
22
Code
#include<iostream>#include<cstdio>using namespace std;int a[101][101],max1,max2,min1,min2,sum,n,m;int dr[4][2]={{0,1},{1,0},{0,-1},{-1,0}};int pd(int x,int y){ if(x>n || x<1 || y<1 || y>m)return 0; return 1;}void dfs(int x,int y){a[x][y]=0; sum++; max1=x>max1?x:max1; max2=y>max2?y:max2; min1=x<min1?x:min1; min2=y<min2?y:min2; for(int i=0;i<4;i++){ int xx=x+dr[i][0],yy=y+dr[i][1]; if(a[xx][yy]==1 && pd(xx,yy)) dfs(xx,yy);}}int main(){int i,j,k;freopen("satel.in","r",stdin);freopen("satel.out","w",stdout);cin>>n>>m;char c;getchar();for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ scanf("%c",&c);if(c=='#')a[i][j]=1;else a[i][j]=0;} getchar();}int ans1=0,ans2=0;for(i=1;i<=n;i++) for(j=1;j<=m;j++){ if(a[i][j]==1){ sum=0; max1=0;max2=0;min1=10000000;min2=10000000; dfs(i,j); if(sum==(max1-min1+1)*(max2-min2+1))ans1++; else ans2++; } }cout<<ans1<<endl<<ans2<<endl;return 0;}
1 0
- 卫星照片
- 卫星照片
- 卫星照片
- 卫星照片
- 卫星照片(satel)
- 【u246】卫星照片
- jzoj. 1300. 卫星照片
- USACO Contest NOV05 卫星照片
- NASA卫星拍摄地球夜晚的照片
- Google发布中国空军试验基地卫星照片
- Google Earth更新中国地区卫星照片啦!
- GeoEye-1 卫星照片来了 - 异常清晰
- Google Mountain View 总部园区超清晰卫星照片
- 从Google卫星地图服务器上获取卫星照片的方法
- 从Google卫星地图服务器上获取卫星照片的方法
- 从Google卫星地图服务器上获取卫星照片的方法
- 用卫星拍摄全球照片的Skybox Imaging再获7000万美元融资
- 美飞行员声称在卫星照片中发现MH370残骸线索
- String、StringBuffer与StringBuilder之间区别
- VS2010 MFC Excel(1)
- 5.oracle的dump理解五 数据块理论
- VS中特殊的注释——TODO/UNDONE/HACK的使用
- Mybatis常见配置错误总结
- 卫星照片
- 关于spring的那点事
- codeforces_664B. Rebus
- 长度受限的字符串函数的实现
- 最长公共子串(LCS)
- Android数据存储方式之 SQLite
- 【结构型模式】桥接模式(Bridge)之23种java设计模式
- 排序算法的时间复杂度
- HashMap与HashTable的区别