2018.10.29 bzoj3718: [PA2014]Parking(树状数组)
传送门
显然只用判断两个会相交的车会不会卡住就行了。
直接树状数组维护后缀最大值就行了。
代码:
#include<bits/stdc++.h>
using namespace std;
const int N=5e4+5;
struct Matrix{int x1,x2,w,id;}a1[N],a2[N];
int n,T,W,pos[N],bit[N];
inline int lowbit(int x){return x&-x;}
inline void update(int x,int v){for(int i=x;i;i-=lowbit(i))bit[i]=max(bit[i],v);}
inline int query(int x){int ret=0;for(int i=x;i<=n;i+=lowbit(i))ret=max(ret,bit[i]);return ret;}
inline bool cmp(const Matrix&a,const Matrix&b){return a.x1==b.x1?a.x2<b.x2:a.x1<b.x1;}
const int RLEN=1<<18;
inline char nc() {
static char ibuf[RLEN],*ib,*ob;
(ib==ob) && (ob=(ib=ibuf)+fread(ibuf,1,RLEN,stdin));
return (ib==ob) ? -1 : *ib++;
}
inline int read() {
char ch=nc(); int i=0,f=1;
while(!isdigit(ch)) {if(ch=='-')f=-1; ch=nc();}
while(isdigit(ch)) {i=(i<<1)+(i<<3)+(ch^48); ch=nc();}
return i*f;
}
int main(){
T=read();
while(T--){
n=read(),W=read();
for(int i=1,y1,y2;i<=n;++i){
a1[i].x1=read(),y1=read(),a1[i].x2=read(),y2=read(),a1[i].id=i;
if(a1[i].x1>a1[i].x2)swap(a1[i].x1,a1[i].x2);
a1[i].w=abs(y1-y2);
}
for(int i=1,y1,y2;i<=n;++i){
a2[i].x1=read(),y1=read(),a2[i].x2=read(),y2=read(),a2[i].id=i;
if(a2[i].x1>a2[i].x2)swap(a2[i].x1,a2[i].x2);
a2[i].w=abs(y1-y2);
}
bool f=1;
sort(a1+1,a1+n+1,cmp),sort(a2+1,a2+n+1,cmp);
for(int i=1;i<=n;++i)pos[a1[i].id]=i;
for(int i=1;i<=n;++i){
if(query(pos[a2[i].id])+a2[i].w>W){f=false;break;}
update(pos[a2[i].id],a2[i].w);
}
fill(bit+1,bit+n+1,0),puts(f?"TAK":"NIE");
}
return 0;
}
2018.10.29 bzoj3718: [PA2014]Parking(树状数组)的更多相关文章
- BZOJ3718[PA2014]Parking——树状数组
题目描述 你的老板命令你将停车场里的车移动成他想要的样子.停车场是一个长条矩形,宽度为w.我们以其左下角顶点为原点,坐标轴平行于矩形的边,建立直角坐标系.停车场很长,我们可以认为它一直向右边伸展到无穷 ...
- CF Educational Codeforces Round 10 D. Nested Segments 离散化+树状数组
题目链接:http://codeforces.com/problemset/problem/652/D 大意:给若干个线段,保证线段端点不重合,问每个线段内部包含了多少个线段. 方法是对所有线段的端点 ...
- Educational Codeforces Round 10 D. Nested Segments 离线树状数组 离散化
D. Nested Segments 题目连接: http://www.codeforces.com/contest/652/problem/D Description You are given n ...
- Educational Codeforces Round 10 D. Nested Segments 【树状数组区间更新 + 离散化 + stl】
任意门:http://codeforces.com/contest/652/problem/D D. Nested Segments time limit per test 2 seconds mem ...
- 6398. 【NOIP2018模拟10.30】Generator(树状数组区间修改)
题目描述 Description Input Output 输出 q 行,第 i 行表示数据 Di 的答案. Sample Input 4 3 2 1 1 2 4 2 1 2 1 1 3 5 2 2 ...
- 2018牛客网暑假ACM多校训练赛(第五场)H subseq 树状数组
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round5-H.html 题目传送门 - https://www.no ...
- DNA Evolution CodeForces - 828E(树状数组)
题中有两种操作,第一种把某个位置的字母修改,第二种操作查询与[L, R]内与给出字符串循环起来以后对应位置的字母相同的个数.给出的字符串最大长度是10. 用一个四维树状数组表示 cnt[ATCG的编号 ...
- Libre OJ 130、131、132 (树状数组 单点修改、区间查询 -> 区间修改,单点查询 -> 区间修改,区间查询)
这三题均可以用树状数组.分块或线段树来做 #130. 树状数组 1 :单点修改,区间查询 题目链接:https://loj.ac/problem/130 题目描述 这是一道模板题. 给定数列 a[1] ...
- P3368 【模板】树状数组 2 单点查询与区间修改
题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数数加上x 2.求出某一个数的和 输入输出格式 输入格式: 第一行包含两个整数N.M,分别表示该数列数字的个数和操作的总个数. ...
随机推荐
- 1. Two Sum (快速排序;有序数组的查找: 两个指针; 哈希表)
Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...
- supervisor安装和简单使用
安装 pip install superviosr echo_supervisord_conf > /etc/supervisord.conf 编辑配置文件: [unix_http_server ...
- Httpclient 表单,json,multipart/form-data 提交 ---总结常用的方法
最近在项目中,一直在使用HttpClient 中的方法,这里我进行一些方法的汇总,也是结合了一些大牛写的代码,以备不时之需 官话:HttpClient 是Apache Jakarta Common 下 ...
- Struts2把数据封装到集合中之封装到map中
struts框架封装数据可以封装到集合中也可以封装到map中,该篇博客主要讲解将数据封装到map中. 1. 封装复杂类型的参数(集合类型 Collection .Map接口等) 2. 需求:页面中有可 ...
- MBP 使用笔记
1.svn下载指令(终端) svn checkout https://svn.openslam.org/data/svn/gmapping 参考:http://blog.csdn.net/q19910 ...
- Python知识
1 注释 单行注释:# 内容 多行注释:A """ ''' 内容 或 内容 "&quo ...
- idea快捷键及快捷方法(待完善)
一.快捷键 alt+insert 插入get.set.构造函数等 ctrl+shift+alt+g 生成注释文档 ctrl+shift+alt+z 移除注释文档 Ctrl + Alt ...
- 安装composer,以及通过composer安装laravel
1安装composer http://docs.phpcomposer.com/00-intro.html#Installation-Windows中选择windows安装 下载并且运行 Compos ...
- gcd(欧几里得算法)
基础 int gcd(int a,int b) { int r; ) { r=a%b; a=b; ...
- tomcat加载web项目报错:bad major version at offset=6
分析原因是开发的web项目的java版本高于tomcat使用的java版本,比如我是在java1.6上开发的,但是tomcat使用的java运行环境是1.5,所以会报改错误. 转载博客如下:http: ...