Olddriver’s books
Olddriver 的书多的吓人,什么算法导论,组合数学英
文版(orz)。。。。。。他把 n 本书都放在身后的桌子上,
每本书有一定的面积,并且书可以覆盖,求 n 本书覆盖桌面
的面积
输入格式:
输入第一行为一个数 N,表示书的数量。下面 N 行,每行
四个整数,分别表示每个书的左下角和右上角的坐标。
输出格式:
输出只有一行,一个整数,表示图形的面积。
样例输入:
3
1 1 4 3
2 -1 3 2
4 0 5 2
样例输出:
10
数据范围:
对于 30%的数据:n<=100,坐标数值绝对值<=300
对于 100%的数据:n<=100,坐标数值绝对值<=10^8
【题解】
对于30%数据 打标记。
对于100%数据,注意到点最多有200个,对x,y坐标离散化,再打标记。
考试时没想到离散化(但数据范围是个很明显的暗示)。要试着接纳这道题的思维。
另外,离散化后要去重(然而我并不知道为什么)。
//这道题写什么扫描线
//离散化以后 直接暴力写不就好了么 O(n^3) 数据真是良心
#include<cstdio>
#include<algorithm>
using namespace std;
const int MAX=510;
struct books
{
int x1,y1,x2,y2;
}c[MAX];
bool b[MAX][MAX];//某一区域上是否有书覆盖 注意是区域而不是点
int x[MAX],y[MAX];
int rx[MAX],ry[MAX],tx,ty;
int n,cnt;
long long ans;
int gi()
{
int x=0,w=1;char ch=getchar();
while ((ch<'0'||ch>'9')&&ch!='-') ch=getchar();
if (ch=='-') w=-1,ch=getchar();
while (ch>='0'&&ch<='9')
{
x=x*10+ch-'0';
ch=getchar();
}
return x*w;
}
//手写lower_bound
int pos_x(int x)
{
int l=1,r=tx;
while (l<r)
{
int mid=(l+r+1)>>1;
if (rx[mid]<=x) l=mid;
else r=mid-1;
}
return l;
}
//手写*2
int pos_y(int x)
{
int l=1,r=ty;
while (l<r)
{
int mid=(l+r+1)>>1;
if (ry[mid]<=x) l=mid;
else r=mid-1;
}
return l;
}
int main()
{
freopen("olddriver.in","r",stdin);
freopen("olddriver.out","w",stdout);
n=gi();
for (int i=1;i<=n;i++)
{
c[i].x1=gi();c[i].y1=gi();c[i].x2=gi();c[i].y2=gi();
x[++cnt]=c[i].x1;y[cnt]=c[i].y1;
x[++cnt]=c[i].x2;y[cnt]=c[i].y2;
}
sort(x+1,x+cnt+1);
sort(y+1,y+cnt+1);
for (int i=1;i<=cnt;i++)//去重
{
if (i==1||x[i]!=x[i-1]) rx[++tx]=x[i];
if (i==1||y[i]!=y[i-1]) ry[++ty]=y[i];
}
for (int i=1;i<=n;i++)//暴力枚举每一本书
{
int X1=pos_x(c[i].x1),X2=pos_x(c[i].x2);
int Y1=pos_y(c[i].y1),Y2=pos_y(c[i].y2);
for (int u=X1;u<X2;u++)
for (int v=Y1;v<Y2;v++)
b[u][v]=1;
}
for (int u=1;u<tx;u++)
for (int v=1;v<ty;v++)
if (b[u][v]) ans+=1ll*(rx[u+1]-rx[u])*(ry[v+1]-ry[v]);
printf("%lld",ans);
return 0;
}
Olddriver’s books的更多相关文章
- 7 Must Read Python Books
7 Must Read Python Books I started learning Python just two years ago. Coming from a C++ and Java ba ...
- TCP/IP BOOKS
TCP/IP Fundamentals for Microsoft Windows: Overview https://technet.microsoft.com/en-us/library/bb72 ...
- UVa 714 Copying Books(二分)
题目链接: 传送门 Copying Books Time Limit: 3000MS Memory Limit: 32768 KB Description Before the inventi ...
- LightOJ1283 Shelving Books(DP)
题目 Source http://www.lightoj.com/volume_showproblem.php?problem=1283 Description You are a librarian ...
- 抄书 Copying Books UVa 714
Copying Books 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=85904#problem/B 题目: Descri ...
- [LintCode] Copy Books 复印书籍
Given an array A of integer with size of n( means n books and number of pages of each book) and k pe ...
- JSTL标签出错:<c:forEach var="book" items="${requestScope.books}" varStatus="status">
今天在运行书里的JSTL标签代码的时候出错,总结一下: 问题1.The JSP specification requires that an attribute name is preceded by ...
- A Year Of Books - 2016 Javaer书单
A Year Of Books - 2016 Javaer书单 (PS:欢迎留言推荐,很多来自白衣大哥的推荐) 1. OS & Networking <编码 : 隐匿在计算机软硬件背后的 ...
- A Personal Selection of Books on E lectromagnetics and Computational E lectromagnetics---David B. Davidson
链接. General Books on Electromagnetics When our department recently reviewed our junior-level text, w ...
随机推荐
- Spring框架系列(一)--Spring MVC基础知识
Web项目开发过程中一般都是使用MVC(Model-View-Controller)模式,早先的Struts2到Spring MVC,再到现在Spring Boot,都是相似的思 路.Spring B ...
- php中 如何找到session 的保存位置
[前言] 刚刚想测试FQ操作,需要删除session,这里记录分享下 [主体] (1)想要查看session保存的目录,需要先找到 php.ini配置文件 (2)在php.ini文件中查找 sessi ...
- iOS-关于一些手势冲突问题(scrollView 嵌套 tableView)
简单说下关于开发中容易遇到的父试图添加手势与子试图点击事件冲突,UIScrollView 嵌套 UIScrollView . UIScrollView 嵌套 UITableView的情况手势冲突问题: ...
- TWaver HTML5之树形布局
转眼间春节假期已经过完,作为一个职业的程序猿,不知道大家有没有这样的感觉,一天不碰电脑,总觉得生活少点什么.今天是春节后上班的第三天,给大家分享一下我们前段时间的一个需求,需求是这样的:界面中的网元分 ...
- Python使用Flask框架,结合Highchart处理xml数据
1.html代码 <!DOCTYPE html><html lang="en"><head> <meta charset=" ...
- zabbix3.4调用钉钉报警通知(超详细)
一.备注: zabbix调用钉钉接口报警通知有两种情况: 1.通知到个人钉 2.通知到钉钉群 本文主要介绍zabbix调用钉钉接口通知到钉钉个人的方式 二.zabbix3.4调用钉钉接口报警通知到个 ...
- Python selenium chrome打包exe后禁用控制台输出滚动日志
Python selenium chrome打包exe后,在运行的过程中,如果遇到需要input()输入时,会发现被不断滚动刷新的日志把命令行输入快速顶掉了,通过查阅资料不断实践,发现以下方法有效: ...
- BZOJ 1782 洛谷 2982 [Usaco2010 Feb]slowdown 慢慢游
[题解] 一头牛走到i,相当于把i点的子树的点权都加1,查询减慢的次数就是查询目的地的点权. 预处理dfs序,某个点的子树的dfs序是连续的一段.差分后用树状数组维护,变成点修区查.或者直接线段树区修 ...
- mybatis源码阅读-执行一个sql的流程(九)
图解 图片来源:https://my.oschina.net/zudajun/blog/670373 Mapper接口调用原理 我们整合成Spring 直接使用Mapper就能执行对应的sql 表现 ...
- jquery ajax获取json并解析,获取的json是object对象格式
首先我们使用的是ajax方式,推荐一个学习网址: http://blog.csdn.net/shiyaru1314/article/details/51065410 这个博主写的特别好.现在来看我们的 ...