话说好久没有碰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. UVA116 单向 DSP(多段图最短路)

    单向 DSP [题目链接]单向 DSP [题目类型]dp &题解: 紫书P271 这块的字典序排序我觉得挺厉害的,每次都把那3步sort一下,之后if (v< d[i][j]) 这块的小 ...

  2. block的传值简单示例仅供参考,大牛勿喷

    #import "ViewController.h" typedef void(^sumBlock)(int s);//声明为一个类型; /** *  用声明的block类型 su ...

  3. android studio 安装报错 unable to run mksdcard sdk tool

    搜了一下原来缺少这个 sudo apt-get install lib32z1 lib32ncurses5  lib32stdc++6

  4. Ubuntu 13.10 安装 ia32-lib

    Ubuntu 13.10下面不参直接安装ia32-libs,直接安装的时候会提示下面的信息: output$ sudo apt-get install ia32-libs Reading packag ...

  5. dirname basename 截取路径中的目录以及文件名

    dirname basename    截取路径中的目录以及文件名 windows 下面: #include "shlwapi.h"#pragma comment(lib, &qu ...

  6. angularjs之表达式

    一:angularjs表达式的解析 angularjs会在运行$digest循环中自动解析表达式,但有时手动解析表达式也是非常用用的. angularjs通过$parse这个内部服务来进行表达式的运算 ...

  7. sql server Geometry 类型操作 笔记

    sqlGeometry 类型为sql server 2008之后的版本 新加的一种CLR扩展数据类型,为广大sql server开发人员存储几何类型及空间运算提供极大的便利,下面说明geometry类 ...

  8. 理论沉淀:隐马尔可夫模型(Hidden Markov Model, HMM)

    理论沉淀:隐马尔可夫模型(Hidden Markov Model, HMM) 参考链接:http://www.zhihu.com/question/20962240 参考链接:http://blog. ...

  9. LeetCode 101. Symmetric Tree

    Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...

  10. android依赖工程,子工程覆盖父工程的相同属性

    当业务复杂,开始拆分工程后,就会遇到如下问题: 工程A为lib父工程, 工程B为子工程.  两个工程中均有资源文件(比如strings.xml),且资源文件中有相同的key, 那么值到底使用谁的? 实 ...