sjystone 2020-12-19 21:09 采纳率: 100%
浏览 49
已采纳

算法竞赛(刘汝佳) 习题4-2 正方形 UVa201

#include <iostream>
#include <cstdio>
using namespace std;
int n,m,w = 0, turn = 1;

int main(){
    while ( scanf("%d %d",&n,&m)==2 ){
        int arr_H[10][10]={{0,0}}, arr_V[10][10]={{0,0}};
        //存入数据
        for ( int q=0; q<m; q++ ){
            char ch;
            int i,j;
            cin >> ch >> i >> j;
            if ( ch=='H' ) arr_H[i-1][j-1] = 1;
            else arr_V[j-1][i-1] = 1;
        }
        
        //以边长遍历
        int count[10]={0}, ist = 0;
        for ( int j=1; j<=n; j++ ){
            ist ++;
            //以位置遍历
            for ( int x=0; x<n-j; x++ ){
                for ( int y=0; y<n-j; y++ ){
                    //判断是否是正方形
                    int judge = 1;
                    for ( int k=0; k<=j; k++ )
                        if ( !arr_H[x+k][y] || !arr_V[x][y+k] ) judge = 0;
                    if ( judge ) count[ist]++;
                }
            }
        }
        if ( w ) printf("\n**********************************\n\n");
        printf("Problem #%d\n\n",turn++);
        int judge = 1;
        for ( int i=1; i<=n; i++ ){
            if ( count[i]!=0 ){
                printf("%d square (s) of size %d\n",count[i],i);
                judge = 0;
            }
        }
        if ( judge ) printf("No completed squares can be found.\n");
        w = 1;
    }
    return 0;
}

整体思路是用两个数组,arr_H[] arr_V[]来保存横线和竖线,遍历每一个正方形的左上角顶点。count数组表示每个尺寸正方形的数量。我拿测试样例和自己想的样例,用别人ac代码和我的代码运行,结果都一样,但我的提交显示wa

  • 写回答

6条回答 默认 最新

  • bosaidongmomo 2020-12-25 08:52
    关注

    看了一下,wa应该是你两个for循环思路不对,再好好想想吧233 或者看看教参

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭