博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面积问题最简做法
阅读量:7122 次
发布时间:2019-06-28

本文共 1384 字,大约阅读时间需要 4 分钟。

1、编程计算由“*”号围成的下列图形的面积。面积计算方法是统计*号所围成的闭合曲线中水平线和垂直线交点的数目。如下图所示,在10*10的二维数组中,有“*”围住了15个点,因此面积为15。
【样例输入】
area.in
0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 0 0 0
0 0 0 0 1 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0
0 0 1 0 0 0 1 0 1 0
0 1 0 1 0 1 0 0 1 0
0 1 0 0 1 1 0 1 1 0
0 0 1 0 0 0 0 1 0 0
0 0 0 1 1 1 1 1 0 0
0 0 0 0 0 0 0 0 0 0
【样例输出】
area.out
15

 

1 #include
2 using namespace std; 3 int xx[5]={-1,+1,0,0}; 4 int yy[5]={
0,0,-1,+1}; 5 int a[101][101]; 6 void dfs(int i,int j) 7 { 8 a[i][j]=1; 9 for(int k=0;k<4;k++)10 {11 int x=i+xx[k];12 int y=j+yy[k];13 if(x>=1&&x<=10&&y>=1&&y<=10&&a[x][y]==0)14 {15 16 dfs(x,y);17 }18 }19 }20 int main()21 {22 for(int i=1;i<=10;i++)23 {24 for(int j=1;j<=10;j++)25 {26 cin>>a[i][j];27 }28 }29 for(int i=1;i<=10;i++)30 {31 if(a[1][i]==0)32 {33 dfs(1,i);34 }35 if(a[i][1]==0)36 {37 dfs(i,1);38 }39 if(a[10][i]==0)40 {41 dfs(10,i);42 }43 if(a[i][10]==0)44 {45 dfs(i,10);46 }47 }48 int tot=0;49 for(int i=1;i<=10;i++)50 {51 for(int j=1;j<=10;j++)52 {53 if(a[i][j]==0)54 tot++;55 }56 }57 cout<

 

 

转载地址:http://drxel.baihongyu.com/

你可能感兴趣的文章
使用AVAudioPlayer出现的问题
查看>>
封装性
查看>>
如何在适合OpenCart系统运行的美国服务器空间建立SMTP服务
查看>>
JAVA中int、String的类型转换
查看>>
MongoDB Could not find host matching read preference { mode: \"primary\" } for set repl_shard1
查看>>
SOAP webserivce 和 RESTful webservice 对比及区别
查看>>
系统操作日志设计
查看>>
spring boot 资料
查看>>
iOS5系统API和5个开源库的JSON解析速度测试
查看>>
iOS入门实例文章目录
查看>>
android Activity.java 源码
查看>>
Override VK_TTALK & VK_TEND
查看>>
mysql使用MRG_MyISAM(MERGE)实现水平分表
查看>>
Kurento应用安全
查看>>
移动开发(IOS) – Objective-C-01-概述
查看>>
iOS与JS交互02
查看>>
linux 下几个奇奇怪怪的文件系统
查看>>
snapmanager for exchange
查看>>
Spring事务类型详解
查看>>
LinkedList类
查看>>