话说好久没有碰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. CF 501C Misha and Forest 好题

    C. Misha and Forest   Let's define a forest as a non-directed acyclic graph (also without loops and ...

  2. Linux命令(17)du 查看文件和目录磁盘使用情况

    Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的. 1.命令格式: du [选项][文件] 2.命令功能 ...

  3. 读《java核心技术卷一》有感

    过去一个多月了吧.才囫囵吞枣地把这书过了一遍.话说这书也够长的,一共706页.我从来不是个喜欢记录的人,一直以来看什么书都是看完了就扔一边去,可能有时候有那么一点想记录下来的冲动,但算算时间太紧,很多 ...

  4. 纯HTML页面为了避免频繁前后台Ajax交互方案

    需求: 看这么一个简单的界面. 它有很多下拉框,下拉框中的可选项并不是固定不变的. 由于页面是静态HTML页面,不能使用后台JSP动态生成. 之前的解决方案是,页面打开后使用多个Ajax请求,获取下拉 ...

  5. Shell中set用法(转载)

    使用set命令可以设置各种shell选项或者列出shell变量. 单个选项设置常用的特性. 在某些选项之后-o参数将特殊特性打开. 在某些选项之后使用+o参数将关闭某些特性, 不带任何参数的set命令 ...

  6. Opensturt和Struct区别

    1 OpenStruct和Struct区别,Opestruct你需要创建时,直接给属性赋值,而Struct需要先定义属性后 ,再给属性赋值.选择哪个就看你对属性赋值的时机, 2 Struct和Open ...

  7. SVN版本管理trunk及branch相关merge操作

    先说说什么是branch.按照Subversion的说法,一个branch是某个development line(通常是主线也即trunk)的一个拷贝,见下图: branch存在的意义在于,在不干扰t ...

  8. 20145305 《Java程序设计》第9周学习总结

    教材学习内容总结 1.厂商在操作JDBC驱动程序时,依方式可将驱动程序分为4种类型: JDBC-ODBC Bridge Driver Native API Driver JDBC-Net Driver ...

  9. C++学习16 继承时的名字遮蔽

    如果派生类中的成员变量和基类中的成员变量重名,那么就会遮蔽从基类继承过来的成员变量.所谓遮蔽,就是使用新增的成员变量,而不使用继承来的. 成员函数也一样,如果函数名和参数签名都相同,就会造成遮蔽.如果 ...

  10. [Flex] ButtonBar系列——flex3 ButtonBar各项之间的间距调整

    <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="h ...