poj3923:http://poj.org/problem?id=3923

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

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

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

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
bool visit[],ans[];
char mp[][];
struct Node{
int x1,y1;
int x2,y2;
}num[];
int n,m;
int main(){
while(~scanf("%d%d",&n,&m)){
if(n==&&m==)break;
if(n<||m<)continue;
memset(visit,,sizeof(visit));
memset(num,,sizeof(num));
memset(mp,,sizeof(mp));
memset(ans,,sizeof(ans));
for(int i=;i<=;i++){
num[i].x1=num[i].y1=;
num[i].x2=num[i].y2=;
}
for(int i=;i<=n;i++)
for(int j=;j<=m;j++){
cin>>mp[i][j];
if(mp[i][j]!='.'){
num[mp[i][j]-'A'].x1=min(num[mp[i][j]-'A'].x1,i);
num[mp[i][j]-'A'].y1=min(num[mp[i][j]-'A'].y1,j);
num[mp[i][j]-'A'].x2=max(num[mp[i][j]-'A'].x2,i);
num[mp[i][j]-'A'].y2=max(num[mp[i][j]-'A'].y2,j);
visit[mp[i][j]-'A']=;
}
}
for(int i=;i<=;i++){
if(visit[i]){
int t1=num[i].x1;
int t2=num[i].y1;
int t3=num[i].x2;
int t4=num[i].y2;
bool flag=false;
for(int j=t2;j<=t4;j++){
if((mp[t1][j]!=('A'+i))||(mp[t3][j]!=('A'+i))){
flag=true;
break;
}
}
for(int j=t1;j<=t3;j++){
if(mp[j][t2]!=('A'+i)||mp[j][t4]!=('A'+i)){
flag=true;
break;
}
}
if(t3-t1<||t4-t2<)flag=true;
if(!flag)
ans[i]=;
}
}
for(int i=;i<=;i++){
if(visit[i]){
for(int k=num[i].x1+;k<num[i].x2;k++){
for(int j=num[i].y1+;j<num[i].y2;j++){
if(mp[k][j]!='.')
ans[i]=;
}
}
}
}
for(int i=;i<=;i++)
if(ans[i])
printf("%c",i+'A');
printf("\n");
}
}

Ugly Windows的更多相关文章

  1. POJ 3923 HDU 2487 Ugly Windows 简单计算

    Ugly Windows Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot ...

  2. HDU 2487 Ugly Windows(暴力)(2008 Asia Regional Beijing)

    Description Sheryl works for a software company in the country of Brada. Her job is to develop a Win ...

  3. HDU 2487 Ugly Windows

    递归求解,代码不太好看,是2013年7月写的 代码: #include<stdio.h> #include<iostream> #include<string.h> ...

  4. 【HDOJ】2487 Ugly Windows

    暴力解. #include <cstdio> #include <cstring> #define MAXN 105 char map[MAXN][MAXN]; ]; int ...

  5. POJ 3923 Ugly Windows(——考察思维缜密性的模拟题)

    题目链接: http://poj.org/problem?id=3923 题意描述: 输入一个n*m的屏幕 该屏幕内有至少一个对话框(每个对话框都有对应的字母表示) 判断并输出该屏幕内处于最表层的对话 ...

  6. windows下 cmd 界面的替代者 cmder 推荐!

    介绍 http://cmder.net/ Portable console emulator for Windows Cmder is a software package created out o ...

  7. HDUOJ----2487Ugly Windows

    Ugly Windows Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  8. 一起KVM环境下windows7虚拟机异常死机(BSOD)的问题解决

    先说一下环境: 一.硬件 8台服务器做的超融合架构,软件存储池, 每台服务器是96G内存,两颗Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz,32线程. 每台服务器是 ...

  9. HDU-2487

    Ugly Windows Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

随机推荐

  1. windows和linux双系统删除linux

    装了Windows和linux双系统的朋友,在后期要删除linux是个比较头痛的问题,因为MBR已经被linux接管,本文的目的是如何在windows 和linux双系统下,简单,完美地卸载linux ...

  2. 使用fastjson前台报406的问题解决方法

    返回的json数据前台页面报406,而后台没有报错,下面为解决方法 <?xml version="1.0" encoding="UTF-8"?> & ...

  3. Objective-C:KVO

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css); @import url(/ ...

  4. Conversion Between DataTable and List in C#

    1.List to DataTable public static DataTable ToDataTable<TSource>(this IList<TSource> dat ...

  5. <html:text> Id属性

    可能 会遇到这样 的问题,需要通过document.getElementById得到<html:text>标签的id, 可是据说ie设置property后id就是一样的了,不过具体没有去测 ...

  6. sql数值显示成千分位分隔符的形式

    ), )--带小数点 ), ),'.00','')--不带小数点

  7. Eclipse vs IDEA快捷键对比大全(win系统)

    花了几天时间熟悉IDEA的各种操作,将各种快捷键都试了一下,感觉很是不错! 以下为我整理了一下开发过程中经常用的一些Eclipse快捷键与IDEA的对比,方便像我一样使用Eclipse多年但想尝试些改 ...

  8. exp/imp 有很多弊端

    弊端1. 空表 无法执行导出操作弊端2. 高版本的导出文件  无法使用 低版本的 oracle软件 导入 环境准备:create table test0707(n1 date); 认证弊端1 案例1. ...

  9. kill session真的能杀掉进程吗

    session1 确认sidSYS @ prod > select userenv('sid') from dual; USERENV('SID')-------------- 144 sess ...

  10. CAEmitterLayer

    -(void)createFireworks{ CAEmitterLayer *fireworks = [CAEmitterLayer layer]; fireworks.emitterPositio ...