zoukankan      html  css  js  c++  java
  • HDU 2487 Ugly Windows

    递归求解,代码不太好看,是2013年7月写的

    代码:

    #include<stdio.h>
    #include<iostream>
    #include<string.h>
    #include<algorithm>
    #include<math.h>
    
    using namespace std;
    
    char s[102][102];
    int flag[26];
    int res[28];
    int tag1[27];
    
    int zong,heng;
    int tag;
    int n,m;
    
    
    int zhao(int qix,int qiy,int zhx,int zhy)
    {
        int fff=0;
        for(int i=qix;i<zhx;i++)
            {
                for(int j=qiy;j<zhy;j++)
                {
                    if(s[i][j]=='.')
                        continue;
                    flag[s[i][j]-'A']=1000;
                    int ny;
                    for(ny=j;ny<zhy;ny++)
                    {
                        if(s[i][ny]!=s[i][j])
                             break;
                    }
                    heng=ny-1;
                    int nx;
                    for(nx=i;nx<zhx;nx++)
                    {
                        if(s[nx][j]!=s[i][j])
                            break;
                    }
                    zong=nx-1;
                    int cnt=0;
                    tag=0;
                    if(zong!=i&&heng!=j&&zong-i>=2&&heng-j>=2)
                    {
                        for(ny=j;ny<=heng;ny++)
                        {
                            if(s[zong][ny]==s[i][j])
                                cnt++;
                            else 
                                break;
                        }
                            if(cnt==heng-j+1)
                            {
                                cnt=0;
                                for(nx=i;nx<=zong;nx++)
                                {
                                    if(s[nx][heng]==s[i][j])
                                        cnt++;
                                    else
                                        break;
                                }
                                if(cnt==zong-i+1)
                                        tag=1;
                                else
                                    tag=0;
                            }
                            if(tag)
                            {
                                tag1[s[i][j]-'A']++;
                                fff=1;
                                if(zhao(i+1,j+1,zong,heng)==1)
                                {
                                    if(tag1[s[i][j]-'A']!=2)
                                        tag1[s[i][j]-'A']=0;
                                }
                                
                            }
                    }                
                    else
                        tag1[s[i][j]]=0;
                }
            }
        return fff;
    }
    
    int main()
    {
        
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            memset(flag,0,sizeof(flag));
            memset(tag1,0,sizeof(tag1));
            int i;
            if(n==0&&m==0)
                break;
            for(i=0;i<n;i++)
                scanf("%s",s[i]);
            zhao(0,0,n,m);
            
            int cn=0;
            for(i=0;i<26;i++)
            {
                if(tag1[i])
                    res[cn++]=i;
            }
                sort(res,res+cn);
                for(i=0;i<cn;i++)
                    printf("%c",res[i]+'A');
                printf("
    ");
        }
        return 0;
    }
    View Code
  • 相关阅读:
    百度点聚合功能,自定义针头功能
    iOS之极光推送
    iOS之短信认证
    iOS FMDB
    iOS 远程推送
    iOS之本地推送(前台模式与后台模式)
    iOS指纹识别
    关于——GCD
    关于——NSThread
    给label text 上色 && 给textfiled placeholder 上色
  • 原文地址:https://www.cnblogs.com/whatbeg/p/3537223.html
Copyright © 2011-2022 走看看