题目链接

题目描述
Farmer John has purchased a new robotic plow in order to relieve him from the drudgery of plowing field after field after field. It achieves this goal but at a slight disadvantage: the robotic plow can only plow in a perfect rectangle with sides of integer length.

Because FJ’s field has trees and other obstacles, FJ sets up the plow to plow many different rectangles, which might end up overlapping. He’s curious as to just how many squares in his field are actually plowed after he programs the plow with various plow instructions, each of which describes a rectangle by giving its lower left and upper right x,y coordinates.

As usual, the field is partitioned into squares whose sides are parallel to the x and y axes. The field is X squares wide and Y squares high (1 <= X <= 240; 1 <= Y <= 240). Each of the I (1 <= I <= 200) plow instructions comprises four integers: Xll, Yll, Xur, and Yur (1 <= Xll <= Xur; Xll <= Xur <= X; 1 <= Yll <= Yur; Yll <= Yur <= Y) which are the lower left and upper right coordinates of the rectangle to be plowed. The plow will plow all the field’s squares in the range (Xll…Xur, Yll…Yur) which might be one more row and column than would initially be assumed (depending on how you go about your assumptions, of course).

Consider a field that is 6 squares wide and 4 squares high. As FJ issues a pair of plowing instructions (shown), the field gets plowed as shown by ‘*’ and ‘#’ (normally plowed field all looks the same, but ‘#’ shows which were most recently plowed):

......             **....             #####.
......  (1,1)(2,4) **....  (1,3)(5,4) #####.
......             **....             **....
......             **....             **....

A total of 14 squares are plowed.

POINTS: 25

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个操作(如下),田地就被犁成"*“和”#“了。虽然一般被犁过的地看起来都是一样的。但是标成”#"可以更清晰地看出最近一次被犁的长方形。

一共14个方格的地被犁过了。

输入格式

  • Line 1: Three space-separated integers: X, Y, and I

  • Lines 2…I+1: Line i+1 contains plowing instruction i which is described by four integers: Xll, Yll, Xur, and Yur

输出格式

  • Line 1: A single integer that is the total number of squares plowed

输入输出样例
输入 #1
6 4 2
1 1 2 4
1 3 5 4
输出 #1
14
说明/提示
As in the task’s example.

为了便于理解,我写的是暴力代码O(N3),这道题也可以用差分法来做,,时间复杂度O(n2)。

代码:

//P2956 [USACO09OCT]机器人犁田The Robot Plow
#include<iostream>
#include<cstring>
using namespace std;
int space[250][250];
int main()
{ios::sync_with_stdio(false);int x, y, i, x1, y1, x2, y2, count = 0;cin >> x >> y >> i;memset(space, 0, sizeof(space));for(int a = 0; a < i; a++){cin >> x1 >> y1 >> x2 >> y2;for(int b = x1; b <= x2; b++)for(int c = y1; c <= y2; c++)space[b][c]++;}for(int m = 1; m <= x; m++)for(int n = 1; n <= y; n++)if(space[m][n] > 0) count++;cout << count;return 0;
}

[USACO09OCT]The Robot Plow G相关推荐

  1. 洛谷刷题C语言:Even? Odd? G、The Robot Plow G、pb的游戏(1)、询问学号、cover

    记录洛谷刷题QAQ 一.[USACO09OCT]Even? Odd? G 题目描述 Bessie's cruel second grade teacher has assigned a list of ...

  2. USACO-The Robot Plow G

    题目描述: Farmer John为了让自己从无穷无尽的犁田工作中解放出来,于是买了个新机器人帮助他犁田.这个机器人可以完成犁田的任务,可惜有一个小小的缺点:这个犁田机器人一次只能犁一个边的长度是整数 ...

  3. P2956 [USACO09OCT]机器人犁田The Robot Plow

    题目描述 Farmer John has purchased a new robotic plow in order to relieve him from the drudgery of plowi ...

  4. 【from zero to zero】noip2017

    from zero to zero 洛谷首页的倒计时不知道什么时候就变成了六字开头. 到底还是太弱了. 生病又拖了很多的时间. 听了很多的算法,自己写起来却非常困难. 也许要在累倒前做一些事情呢. 从 ...

  5. ROS探索总结(十三)(十四)(十五)——导航与定位框架 move_base(路径规划) amcl(导航与定位)

    ROS探索总结(十三)--导航与定位框架 导航与定位是机器人研究中的重要部分.         一般机器人在陌生的环境下需要使用激光传感器(或者深度传感器转换成激光数据),先进行地图建模,然后在根据建 ...

  6. rrt算法流程图_RRT算法移动机器人路径规划(快速扩展随机树).pdf

    ( ) 第 34 卷 第 5期 南京理工大学学报 自然科学版 Vo l. 34 No. 5 20 10年 10 月 Journal of N anj ing Un iversity of Scienc ...

  7. 【OJ】洛谷红题题解锦集(Java语言描述)

    前言 能看这篇文章,想来你可能是小白(或者切题的大佬),那这里会把洛谷的红题(当前只有P字段的本谷题目)进行一下整理,希望会合你口味吧-- 本文只附个人题解链接,不附题目链接(题解中自带),如想刷题请 ...

  8. 五自由度简单机械臂运动学及动力学分析|基于MATLAB机器人工具箱Rvctool

    五自由度简单机械臂运动学及动力学分析|基于MATLAB机器人工具箱Rvctool 1.机械臂要满足其抓手能在0.50.50.5立方米的工作空间内活动,终端抓手要能横向以及纵向抓到这个空间内每一个点(死 ...

  9. 用Q-learning算法实现自动走迷宫机器人

    项目描述: 在该项目中,你将使用强化学习算法,实现一个自动走迷宫机器人. 如上图所示,智能机器人显示在右上角.在我们的迷宫中,有陷阱(红色炸弹)及终点(蓝色的目标点)两种情景.机器人要尽量避开陷阱.尽 ...

最新文章

  1. R 语言柱状图示例笔记
  2. VS 2017开发ASP.NET Core Web应用过程中发现的一个重大Bug
  3. oracle sql比较时间大小,Oracle数据库中日期时间的操作比较和加减
  4. 如何在 SAP Cloud for Customer 里自定义消息 Message
  5. 【Luogu】P1131时态同步(树形DP)
  6. 5分钟就能完成的Python小项目,赶紧拿去玩玩吧
  7. 走进COM组件系列(一)
  8. 如何使用JS来改变CSS样式
  9. ios打包时候提示三方文件库错误,整理下解决的思路
  10. ISO50001认证咨询,ISO50001能源管理体系建立的基本步骤及企业的管理权限范围
  11. python正交表运用
  12. 2021鹏业安装算量软件常见问题整理(十三)
  13. 【转】四种主流温度传感器的优缺点比较
  14. 用计算机处理文字单元设计,计算机应用基础单元设计62(处理图像).doc
  15. 阿里云建站产品有哪些?如何选择?
  16. 狗咬吕洞宾,不识好人心的来历
  17. 来了超火爆的Java游戏羊了个羊_java开发游戏项目
  18. Dropout和BN(层归一化)详解
  19. SSD算法理解(1)
  20. 最新php面试题及答案

热门文章

  1. Boost Getting Started 安装文档(翻译1.33版本)
  2. 谌椿抵喜票狼疗阎兄凑咦,王超?是你?你来这里干什么,找人么?”王超一边
  3. MySQL数据库基础(一)
  4. 北大本科计算机教材,北大失去自考计算机专业教材编印权和命题权之后(上)...
  5. 脑机接口科普0005——我国脑机接口发展历史
  6. mysql如何存储bitmap_[MySQL] mysql中bitmap的简单运用
  7. 【面试现场】如何判断一个数是否在40亿个整数中?
  8. 朋友牛仔的72时间线
  9. 自制python计时器
  10. 怎么word转换成html,如何将word转换成html word转html图文教程