zoukankan      html  css  js  c++  java
  • poj 3923 模拟

    /*
    1、判断是否是一个完整边框
    2、判断是否长度和宽度小于3
    3、判断是否有内部覆盖的现象
    */
    #include<stdio.h>
    #define N  110
    #define inf 0x3fffffff
    struct node {
      int u,v;
    }f[N*N],ee;
    char s[N][N];
    int n,m;
    void judge() {
      int minx,i,j,k,e,len,maxx,miny,maxy;
      for(e=0;e<26;e++) {
            len=0;
        for(j=1;j<=n;j++)
            for(k=1;k<=m;k++)
                if(s[j][k]=='A'+e) {
                    ee.u=j;
                    ee.v=k;
                    f[len++]=ee;
                }
                if(len==0)continue;
                minx=inf;maxx=0;miny=inf;maxy=0;
                for(i=0;i<len;i++) {
                    if(f[i].u>maxx)
                      maxx=f[i].u;
                    if(f[i].u<minx)
                        minx=f[i].u;
                    if(f[i].v>maxy)
                        maxy=f[i].v;
                    if(f[i].v<miny)
                        miny=f[i].v;
                }
                if(maxx-minx<2)continue;//长度或者宽度小于三
                if(maxy-miny<2)continue;
                if(len!=(maxx-minx+maxy-miny)*2)//是否是一个完整边框
                    continue;
                int flag=1;
                for(i=minx+1;i<maxx;i++)
                    for(j=miny+1;j<maxy;j++)
                    if(s[i][j]!='.')
                    flag=0;//是否有内部覆盖现象
                if(flag)
                    printf("%c",'A'+e);
      }
    }
    int main() {
       int i;
       while(scanf("%d%d",&n,&m),n||m) {
     for(i=1;i<=n;i++)
     scanf("%s",s[i]+1);
     judge();
     printf("
    ");
       }
    return 0;
    }
    

  • 相关阅读:
    PHP中防止SQL注入的方法
    SQLmap超详细文档和实例演示
    Spring Cloud 个人心得 理论
    Spring注解说明
    git各角色权限描述
    jenkins调用tomcat重启命令 && tomcat重启脚本
    nginx1.5 升级到1.14
    发布项目
    spring boot 多线程
    Jmeter测试http请求
  • 原文地址:https://www.cnblogs.com/thefirstfeeling/p/4410626.html
Copyright © 2011-2022 走看看