话说好久没有碰acm题目了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

看到Ugly Window这道题目,没有多想,就直接先找到字母的连续长度和连续高度,并统计该字母的总个数,然后用w*h == total+4(四个角落)判断矩形完整不,呜呜,提交后WA了才想到还有可能嵌套的呀呀呀~然后我就打算把矩形的起点和尾点都找出来,然后想到是否还有更好的想法呢?之后我就上网搜了一下,发现了直接找到该字母的连续长度和连续高度后判断中间是否全部为‘.’,周边是否全部为该字母的办法。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

上代码吧~

(好久没有单纯的用C语言写过代码了,这次写的时候小心翼翼的~)

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define CHARNUM 27
#define MAXNUM 110 int main()
{
int n,m;
char myChar[MAXNUM][MAXNUM];
int vis[CHARNUM];
int flag; int i,j,s,t,width,height; while(scanf("%d%d",&n,&m) != EOF)
{
memset(vis,,sizeof(vis)); for(i = ;i < n;i ++)
{
scanf("%s",myChar[i]);
} for(i = ; i < n-;i ++)
{
for(j = ;j < m - ;j ++)
{
if(myChar[i][j] == '.')
continue; if(vis[myChar[i][j] - 'A'] != )
{
continue;
} flag = ;
for(s = i + ;;s ++)
{
if(myChar[s][j] != myChar[i][j])
{
break;
}
}
height = s - i; for(s = j + ;;s ++)
{
if(myChar[i][s] != myChar[i][j])
break;
}
width = s - j; for(s = i + ; flag && s < i + height - ; s ++)
{
for(t = j + ;t < j + width - ; t ++)
{
if(myChar[s][t] != '.')
{
flag = ;
break;
}
}
} for(s = j + ; flag && s < j + width; s ++)
{
if(myChar[i+height - ][s] != myChar[i][j])
{
flag = ;
break;
}
} for(s = i + ;flag && s < i + height;s ++)
{
if(myChar[s][j+width-] != myChar[i][j])
{
flag = ;
break;
}
} if(width == || height == )
flag = ; if(flag)
{
vis[myChar[i][j] - 'A'] = ;
}
}
} for(i = ; i < ;i ++)
{
if(vis[i] == )
{
printf("%c",i+'A');
}
} puts("");
} return ;
}

代码如下:

Ugly Window 【acm题】的更多相关文章

  1. 高手看了,感觉惨不忍睹——关于“【ACM】杭电ACM题一直WA求高手看看代码”

    按 被中科大软件学院二年级研究生 HCOONa 骂为“误人子弟”之后(见:<中科大的那位,敢更不要脸点么?> ),继续“误人子弟”. 问题: 题目:(感谢 王爱学志 网友对题目给出的翻译) ...

  2. ACM题集以及各种总结大全!

    ACM题集以及各种总结大全! 虽然退役了,但是整理一下,供小弟小妹们以后切题方便一些,但由于近来考试太多,顾退役总结延迟一段时间再写!先写一下各种分类和题集,欢迎各位大牛路过指正. 一.ACM入门 关 ...

  3. ACM题集以及各种总结大全(转)

    ACM题集以及各种总结大全! 虽然退役了,但是整理一下,供小弟小妹们以后切题方便一些,但由于近来考试太多,顾退役总结延迟一段时间再写!先写一下各种分类和题集,欢迎各位大牛路过指正. 一.ACM入门 关 ...

  4. 北大ACM题库习题分类与简介(转载)

    在百度文库上找到的,不知是哪位大牛整理的,真的很不错! zz题 目分类 Posted by fishhead at 2007-01-13 12:44:58.0 -------------------- ...

  5. 杭电ACM题单

    杭电acm题目分类版本1 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最 ...

  6. 天大acm 题号1002 Maya Calendar

    Description 上周末,M.A. Ya教授对古老的玛雅有了一个重大发现.从一个古老的节绳(玛雅人用于记事的工具)中,教授发现玛雅人使用了一个一年有365天的叫做Haab的历法.这 个Haab历 ...

  7. HDU 2487 Ugly window

    这是切的很痛苦的一道题,自己测试了很多样例却终究不过,中间也做了诸多修改,后来无奈去网上看题解,发现遗漏了一种情况,就是两个窗口可能边框都能看见,但是一个嵌套在另一里面,而我判定是不是 “top wi ...

  8. POJ 2823 Sliding Window​ (模板题)【单调队列】

    <题目链接> <转载于>>> > 题目大意: 给你一段序列和一个长为k的窗口,这个窗口从最左边逐渐向右滑,直到滑到最右边,问你,该窗口在滑动的过程中,最大值和 ...

  9. 折半插入排序-ACM题

    第一种实现方式:(本人一开始对cin的使用不是很熟悉,看了一些人得博客详解后才有了第一种方式的实现,自己都被惊讶到了so easy:题目在下面) // // main.cpp // BinaryIns ...

随机推荐

  1. 使用 Override 和 New 关键字进行版本控制

    使用 Override 和 New 关键字进行版本控制 C# 语言经过专门设计,以便不同库中的基类与派生类之间的版本控制可以不断向前发展,同时保持向后兼容. 这具有多方面的意义.例如,这意味着在基类中 ...

  2. 黄聪:jquery mobile通过a标签页面跳转后,样式丢失、js失效的解决方法

    问题描述: 用ajax跳转的时候,从a.html跳转到b.html后,b.html的css以及js都失效了. 解决办法1: 将所有的css以及js全部放在div内. 原理: 由于jqm的ajax跳转的 ...

  3. mysql小问题

    报错信息如下: 主要是因为用root用户登录查询其他用户的表,结果这个用户不存在了,所以导致没有权限.临时解决办法,给root赋所有权限: grant all privileges on *.* to ...

  4. CF 445A 简单DP

    今天早上找一道题的bug,还是找不出来,下午刷了几道水题,晚上准备回家的事, 然后本来想打CF的,一看,数学场,不打了. 这道题的题意: 给出一个序列,每次你可以从这个序列里面选择一个数ak,删除,然 ...

  5. 网页地图map

    <map name="map"> <area shape="rect" coords="75,75,99,99" nohr ...

  6. linux命令(5)文件操作:ls命令、显示文件总个数

    一:ls命令是最常用的linux命令了:下面是ls --help里面的用法 在提示符下输入ls --help ,屏幕会显示该命令的使用格式及参数信息: 先介绍一下ls命令的主要参数: -a 列出目录下 ...

  7. 带节日和农历的js日历 带农历的脚本:

    <html><head><meta http-equiv="Content-Type" content="text/html; charse ...

  8. Python补充01 序列的方法

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在快速教程中,我们了解了最基本的序列(sequence).回忆一下,序列包含有定值 ...

  9. rails 配置使用mysql

    1 在gemfile中要添加 gem 'mysql2' 2 在mysql数据库中创建三个数据库 dept_dev dept_test dept_pro 3 配置文件 default: &def ...

  10. 93、App Links (应用程序链接)实例

    •网页端statements.json文件配置说明     package_name :APP包的名. sha256.... :  APP的签名.   •应用Manifest文件声明说明 <ap ...