博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ugly Windows
阅读量:5103 次
发布时间:2019-06-13

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

poj3923:

题意:给出两个整数n、m表示屏幕的长宽。屏幕上有一些窗口,每个窗口都是矩形的,窗口的边框用同一个大写字母来表示,不同的窗口的大写字母必定不同。

由于窗口的重叠,有些窗口的有些部分被其他窗口覆盖。但是,肯定有一些窗口在最顶端,不被其他任何窗口覆盖。我们称这些窗口为“顶端窗口”。你的任务就是找出所有的顶端窗口。

题解:简单的模拟。结果我错了很多次啊。首先,没有考虑到边框的内部一定要是'.',然后是最坑就是每个窗口的高度和宽度都不能小于3,自己模拟能力还是很弱啊,要多打打。

1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 bool visit[30],ans[30]; 8 char mp[102][102]; 9 struct Node{10 int x1,y1;11 int x2,y2;12 }num[30];13 int n,m;14 int main(){15 while(~scanf("%d%d",&n,&m)){16 if(n==0&&m==0)break;17 if(n<3||m<3)continue;18 memset(visit,0,sizeof(visit));19 memset(num,0,sizeof(num));20 memset(mp,0,sizeof(mp));21 memset(ans,0,sizeof(ans));22 for(int i=0;i<=29;i++){23 num[i].x1=num[i].y1=1000;24 num[i].x2=num[i].y2=0;25 }26 for(int i=1;i<=n;i++)27 for(int j=1;j<=m;j++){28 cin>>mp[i][j];29 if(mp[i][j]!='.'){30 num[mp[i][j]-'A'].x1=min(num[mp[i][j]-'A'].x1,i);31 num[mp[i][j]-'A'].y1=min(num[mp[i][j]-'A'].y1,j);32 num[mp[i][j]-'A'].x2=max(num[mp[i][j]-'A'].x2,i);33 num[mp[i][j]-'A'].y2=max(num[mp[i][j]-'A'].y2,j);34 visit[mp[i][j]-'A']=1;35 }36 }37 for(int i=0;i<=29;i++){38 if(visit[i]){39 int t1=num[i].x1;40 int t2=num[i].y1;41 int t3=num[i].x2;42 int t4=num[i].y2;43 bool flag=false;44 for(int j=t2;j<=t4;j++){45 if((mp[t1][j]!=('A'+i))||(mp[t3][j]!=('A'+i))){46 flag=true;47 break;48 }49 }50 for(int j=t1;j<=t3;j++){51 if(mp[j][t2]!=('A'+i)||mp[j][t4]!=('A'+i)){52 flag=true;53 break;54 }55 }56 if(t3-t1<2||t4-t2<2)flag=true;57 if(!flag)58 ans[i]=1;59 }60 }61 for(int i=0;i<=29;i++){62 if(visit[i]){63 for(int k=num[i].x1+1;k
View Code

 

转载于:https://www.cnblogs.com/chujian123/p/3886566.html

你可能感兴趣的文章
通用测试用例设计
查看>>
Sql Server 时间格式化
查看>>
Bootstrap 3 How-To #2 标题,链接与按钮
查看>>
$.each解析json
查看>>
在VMmare上安装Windows 2003,及三种网络连接设置
查看>>
8.18
查看>>
在asp.net中显示PDF的方法:
查看>>
中国银行笔试题目回忆
查看>>
[原创]ActionScript3游戏中的图像编程(连载十三)
查看>>
init.c中打印Log
查看>>
Socket Error # 10013 Access denied
查看>>
Apache
查看>>
张量漫谈(前两篇)
查看>>
ctrl + alt + T无法启动终端
查看>>
Controller 层类
查看>>
SpringMVC配置
查看>>
执行插入语句时直接返回插入信息的自增id,判断是否为空
查看>>
android中Handle类的用法
查看>>
【MM系列】SAP 物料帐下修改物料的价格
查看>>
【转载】关于api-ms-win-crt-runtimel1-1-0.dll缺失的解决方案
查看>>