zoukankan      html  css  js  c++  java
  • UVa-201 Squares

    以前做的题,写的丑,肯定可以优化,但是做过的题不想再看了,直接粘代码。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    using namespace std;
    bool fuc(int x,int y,int i);
    int h[20][20]={},v[20][20]={};
    int main()
    {
        //freopen("in.txt","r",stdin);
        //freopen("out.txt","w",stdout);
        int n,cnt=0;
        while(cin>>n)
        {
            memset(h,0,sizeof(h));
            memset(v,0,sizeof(v));
            ++cnt;
            int num;
            cin>>num;
            while(num--)
            {
                char c;
                int a,b;
                cin>>c>>a>>b;
                if(c=='H')
                    h[a][b]=1;
                else
                    v[b][a]=1;
            }
            //cout<<fuc(1,1,1)<<endl;
            int sum[20]={};
            for(int i=1;i<=n-1;i++)
            {
                for(int ii=1;ii<=n-i;ii++)
                {
                    for(int jj=1;jj<=n-i;jj++)
                    {
                        if(fuc(ii,jj,i))
                        {
                            sum[i]++;
                        }
                    }
                }
            }
            if(cnt>1)
            {
                cout<<"
    **********************************
    
    ";
            }
            cout<<"Problem #"<<cnt<<"
    
    ";
            bool flag=0;
            for(int i=1;i<=n-1;i++)
            {
                if(sum[i]>0)
                {
                    flag=1;
                    cout<<sum[i]<<" square (s) of size "<<i<<endl;
                }
            }
            if(flag==0)
            {
                cout<<"No completed squares can be found."<<endl;
            }
        }
    }
    bool fuc(int x,int y,int i)
    {
        for(int jj=y;jj<=y+i-1;jj++)
        {
            if(h[x][jj]==0||h[x+i][jj]==0)
            {
                return 0;
            }
        }
        for(int ii=x;ii<=x+i-1;ii++)
        {
            if(v[ii][y]==0||v[ii][y+i]==0)
            {
                return 0;
            }
        }
        return 1;
    }
  • 相关阅读:
    iOS开发 当前时间 时间戳 转换
    iOS开发 下滑隐藏Tabbar
    iOS开发 浅见runloop
    iOS开发 检测版本更新
    IOS开发 二维码功能的实现
    级数
    算法-快速排序
    struts2.0中struts.xml配置文件详解【转】
    javascript原型【转】
    AOP各种的实现【转】
  • 原文地址:https://www.cnblogs.com/windrises/p/4653047.html
Copyright © 2011-2022 走看看