CSP记录,201409-02画图

思路分析:

输入:采用for循环依次输入x1,y1,x2,y2

解答:设置一个bool二元数组,初始将所有的值置为false,即代表这个false的单元面积还没有被遍历到,还没有加上它。然后依据两层嵌套循环依次遍历,遍历一个单元面积,执行语句sum++,并且将arr[i][j]的值改为true,表示已经加过此单位面积,防止后续遍历时重复相加。

代码如下:

#include<bits/stdc++.h>
using namespace std;
int n;
bool arr[101][101];
int main()
{
     cin>>n;
     int sum=0;
     int x1,y1,x2,y2;
    memset(arr,false,sizeof(arr));//将arr数组中的所有值置为false 
     for(int k=0;k<n;k++){
         cin>>x1>>y1>>x2>>y2;
         for(int i=x1;i<x2;i++){
             for(int j=y1;j<y2;j++){
                 if(arr[i][j]==false){
                     sum++;
                     arr[i][j]=true  ;
                 }
             }
         }
     }
     cout<<sum;
    return 0;
}

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值