zoukankan      html  css  js  c++  java
  • UVa 201 Square

      这道题,没什么,就查找正方形, 特别注意一下 的使用。

    //UVa 201 
    //Square
    //#define LOCAL
    #include <stdio.h> 
    #include <string.h> //use memset 
    
    int dot[11][11][11][11], N;
    
    int getS(int size) 
    {
        int cnt = 0, flag;
        for(int i = 1; i <= N-size; i++)
            for(int j = 1; j <= N-size; j++) { 
                flag = 0;
                int x = i, y = j;
                for(int k = 1; k <= size; k++) {
                    if(!dot[x][y][x][y+1]) flag = 1;
                    y++;    
                }
                x = i; y = j; 
                for(int k = 1; k <= size; k++) {
                    if(!dot[x][y][x+1][y]) flag = 1;
                    x++;    
                }
                x = i + size; y = j; 
                for(int k = 1; k <= size; k++) {
                    if(!dot[x][y][x][y+1]) flag = 1; 
                    y++;
                }
                x = i; y = j + size;
                for(int k = 1; k <= size; k++) {
                    if(!dot[x][y][x+1][y]) flag = 1; 
                    x++; 
                }        
                if(!flag) { 
    //                printf("%d %d
    ", i, j);
                    cnt++;
                }
            }
        return cnt;
    }
    
    int main() 
    {    
        #ifdef LOCAL
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout); 
        #endif 
        int cnt = 0, n, ans, f;
        while(scanf("%d", &N) == 1) {
            memset(dot, 0, sizeof(dot));
            scanf("%d", &n);
            char s[5]; int x, y;
             for(int i = 0; i < n; i++) { 
                scanf("%s%d%d", s, &x, &y);
                if(s[0] == 'H') 
                    dot[x][y][x][y+1] = 1;
                else     
                    dot[y][x][y+1][x] = 1; 
            }
            if(cnt > 0) printf("
    **********************************
    
    ");
            printf("Problem #%d
    
    ", ++cnt);
            f = 0;
            for(int i = 1; i <= N; i++) {
                ans = getS(i); 
                if(ans) { f = 1; printf("%d square (s) of size %d
    ", ans, i); }
            }
            if(!f) printf("No completed squares can be found.
    ");
        }
        return 0; 
    } 
    语言c++计算机程序设计爱好者 不定期更新题目题解 望互相分享心得体会 有意留言加q
  • 相关阅读:
    VS2010中使用JSONCPP方法
    VC获取外网IP
    JSON样例
    JSON详解
    vc获取本地IP
    Java中创建对称密钥的代码
    密和解密程序的一些概念
    在ireport报错 报 jdk5找不到的解决办法
    Java中创建对称密钥的步骤
    比较好用的一个jaspereport模板 生成html页面模板
  • 原文地址:https://www.cnblogs.com/yifeiWa/p/10340638.html
Copyright © 2011-2022 走看看