来自M78的光之文轩 2022-10-28 18:39 采纳率: 92%
浏览 48
已结题

NOI 1.9编程基础之顺序查找 14题

NOI 1.9编程基础之顺序查找 14题
题目在http://noi.openjudge.cn/ch0109/14/
我的思路是想令一个大的二维数组=0,将铺到的地方+1,最后输出改点的二维数组
不过好像数组里放不下那么大的数


#include<iostream>
using namespace std;
int main(){
    int n;
    cin>>n;
    int i,l,k;
    int a[n][4];
    for(i=0;i<n;i++){
        for(l=0;l<4;l++){
            cin>>a[i][l];
        }
    }
    int b[300][300];
    for(i=0;i<300;i++){
        for(l=0;l<300;l++){
            b[i][l]=0;
        }
    }
    for(i=0;i<n;i++){
        for(k=0;k<a[i][3];k++){
            for(l=0;l<a[i][2];l++){
                b[a[i][1]+k][a[i][0]+l]+=1;
            }
        }
    }
    int x,y;
    cin>>x>>y;
    if(b[x][y]==0) b[x][y]-=1;
    cout<<b[x][y];
}
  • 写回答

2条回答 默认 最新

  • 关注

    用结构体存地毯的信息,用数组不方便,放入地毯后,逐个地毯判断是否包含输入的点即可
    typedef struct StInfo{
    int x,y; //左下角的坐标点
    int w,h; //宽度和高度
    }

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

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月2日
  • 已采纳回答 10月29日
  • 创建了问题 10月28日