博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TYVJ P1026 犁田机器人 Label:水
阅读量:7113 次
发布时间:2019-06-28

本文共 1770 字,大约阅读时间需要 5 分钟。

背景

USACO OCT 09 2ND

描述

Farmer John為了让自己从无穷无尽的犁田工作中解放出来,於是买了个新机器人帮助他犁田。这个机器人可以完成犁田的任务,可惜有一个小小的缺点:这个犁田机器人一次只能犁一个边的长度是整数的长方形的田地。
因為FJ的田地有树和其他障碍物,所以FJ设定机器人去犁很多不同的长方形。这些长方形允许重叠。他给机器人下了P个指令,每个指令包含一个要犁长方形的地。这片田地由长方形的左下角和右上角坐标决定。他很好奇最后到底有多少个方格的地被犁过了。
一般来说,田地被分割為很多小方格。这些方格的边和x轴或y轴平行。田地的宽度為X个方格,高度為Y个方格 (1 <= X <= 240; 1 <= Y <= 240). FJ执行了I (1 <= I <= 200)个指令,每个指令包含4个整数:Xll, Yll, Xur, Yur (1 <= Xll <=Xur; Xll <= Xur <=X; 1 <= Yll <= Yur; Yll <= Yur <= Y), 分别是要犁的长方形的左下角坐标和右上角坐标。机器人会犁所有的横坐标在Xll..Xur并且纵坐标Yll..Yur范围内的所有方格的地。可能这个长方形会比你想像的多一行一列(就是说从第Xll列到第Xur列一共有Xur - Xll + 1列而不是Xur - Xll列)。
考虑一个6方格宽4方格高的田地。FJ进行了2个操作(如下),田地就被成"*"和"#"了。虽然一般被犁过的地看起来都是一样的。但是标成"#"可以更清晰地看出最近一次被犁的长方形。
    ......                 **....                  #####.
    ......  (1,1)(2,4) **....  (1,3)(5,4)  #####.
    ......                 **....                  **....
    ......                 **....                  **....
一共14个方格的地被犁过了。

输入格式

* 第一行: 三个由空格隔开的整数: X, Y, I
* 第二行到第I+1行:第i+1行有四个整数Xll, Yll, Xur, Yur,表示第i个指令。

输出格式

第一行: 一个单独的整数表示被犁过的方格数。

测试样例1

输入

6 4 2 
1 1 2 4 
1 3 5 4

输出

14

代码

1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 int X,Y,I,sum; 7 int map[245][245]; 8 9 void fix(int x1,int y1,int x2,int y2){10 for(int i=x1;i<=x2;i++){11 for(int j=y1;j<=y2;j++){12 map[i][j]=1;13 }14 }15 }16 17 int main(){18 // freopen("01.txt","r",stdin);19 scanf("%d%d%d",&X,&Y,&I);20 for(int i=1;i<=I;i++){21 int x1,x2,y1,y2;22 scanf("%d%d%d%d",&x1,&y1,&x2,&y2);23 fix(x1,y1,x2,y2);24 }25 for(int i=1;i<=X;i++){
//检查x,y位置 26 for(int j=1;j<=Y;j++){27 if(map[i][j]) ++sum;28 }29 }30 printf("%d\n",sum);31 32 return 0;33 }

None

转载于:https://www.cnblogs.com/radiumlrb/p/5793678.html

你可能感兴趣的文章
Jvm(57),类加载器----初次认识加载器
查看>>
IntelliJ Idea 常用快捷键列表
查看>>
开始使用Chronograf(官方说明)
查看>>
loading
查看>>
微信小程序:将中文语音直接转化成英文语音
查看>>
debian shell脚本关联
查看>>
静态构造函数(C# 编程指南)
查看>>
如何创建一个WebService
查看>>
NVelocity标签设置缓存的解决方案
查看>>
poj1053
查看>>
用CSS实现无图片背景圆角效果
查看>>
基于ArcGIS10.0和Oracle10g的空间数据管理平台二(C#开发)
查看>>
利用MediaElement控件制作一个简单的播放器
查看>>
SQLServer DBA 三十问之我答(第1~10题)
查看>>
异步调用之精简方式
查看>>
析构函数 Destructor
查看>>
linux时间相关结构体和函数整理【转载】
查看>>
XQuery的FLOWR表达式
查看>>
在Net中javascript获取Request的值
查看>>
Andriod平台"点九" .9.png设计介绍(转)
查看>>