bzoj 3718
题意:戳这里
思路:很容易发现对于一个车能否移动到最终的位置只要判断路径中得最大高度与自身高端之和是否>w即可。
那么就可以转化为逆序对得最大数问题。。即对于每一辆车,判断有那些最初在他前面,而最终却在他后面的 车的与他的高度和是否>w即可。。树状数组维护。。
code:
#include <bits/stdc++.h>
using namespace std;
#define M0(a) memset(a, 0, sizeof(a))
#define repf(i, a, b) for (int i = (a); i <= (b); ++i)
const int maxn = ;
struct trangle{
int x1, y1, x2, y2, p, h;
void input(int p){
this->p = p;
scanf("%d%d%d%d", &x1, &x2, &y1, &y2);
if (x1 > x2) swap(x1, x2);
if (y1 > y2) swap(y1, y2);
h = y2 - y1;
}
bool operator<(const trangle& p) const{
return x1 == p.x1 ? x2 < p.x2 : x1 < p.x1;
}
} f[maxn], s[maxn];
int v[maxn], n, pos[maxn], w;
inline int lowbit(const int& x){
return x & (-x);
} void update(int x,const int& val){
for (;x <= n; x += lowbit(x))
v[x] = max(v[x], val);
} int query(int x){
int res = ;
for (;x>; x-= lowbit(x))
res = max(res, v[x]);
return res;
} void solve(){
scanf("%d%d", &n, &w);
// cout << w << endl;
repf(i, , n) f[i].input(i);
repf(i, , n) s[i].input(i);
sort(f + , f + + n);
sort(s + , s + + n);
M0(pos), M0(v);
repf(i, , n) pos[f[i].p] = i;
bool ok = ;
for (int i = n; i >= ; --i){
if (!ok) break;
if (query(pos[s[i].p]) + s[i].h > w) ok = ;
update(pos[s[i].p], s[i].h);
}
puts(ok ? "TAK" : "NIE"); } int main(){
// freopen("a.in", "r", stdin);
int _;
scanf("%d", &_);
while (_--){
solve();
}
}
bzoj 3718的更多相关文章
- bzoj 3718: [PA2014]Parking
Description 你的老板命令你将停车场里的车移动成他想要的样子. 停车场是一个长条矩形,宽度为w.我们以其左下角顶点为原点,坐标轴平行于矩形的边,建立直角坐标系.停车场很长,我们可以认为它一直 ...
- BZOJ 2127: happiness [最小割]
2127: happiness Time Limit: 51 Sec Memory Limit: 259 MBSubmit: 1815 Solved: 878[Submit][Status][Di ...
- BZOJ 3275: Number
3275: Number Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 874 Solved: 371[Submit][Status][Discus ...
- BZOJ 2879: [Noi2012]美食节
2879: [Noi2012]美食节 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1834 Solved: 969[Submit][Status] ...
- bzoj 4610 Ceiling Functi
bzoj 4610 Ceiling Functi Description bzoj上的描述有问题 给出\(n\)个长度为\(k\)的数列,将每个数列构成一个二叉搜索树,问有多少颗形态不同的树. Inp ...
- BZOJ 题目整理
bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...
- 【sdoi2013】森林 BZOJ 3123
Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数.第三行包含N个非负整数 ...
- 【清华集训】楼房重建 BZOJ 2957
Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...
- 【splay】文艺平衡树 BZOJ 3223
Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 ...
随机推荐
- ABP JTable如何手动刷新子表数据
function getSubMaster() { _$masterTable.find('.jtable-child-table-container').jtable('reload'); }
- 使用sql更改表的列的数据类型和添加新列和约束
修改数据库表某一列或添加列,转载的哦~ --增加一列 ALTER TABLE 表名 ADD 列名 VARCHAR(20) NULL --删除一列 ALTER TABLE 表名 drop COLUMN ...
- wini -- FileSubmitByFTP
// winFtpPutFiles.cpp : Defines the entry point for the console application.// #include "stdafx ...
- ModelAndView详解
ModelAndView的构造方法有7个.但是它们都是相通的. 这里使用无参构造函数来举例说明如何构造ModelAndView实例. ModelAndView类别就如其名称所示,是代表了MVC Web ...
- OA及权限系统
一直想找一款适合自己的权限管理后台,始终都没找到合适的,决定自己写一个 开发环境:vs2012 ,sql2008 语言:C# 前端:ligurui,jquery ORM框架:EF6.0 先来晒下我的数 ...
- Nginx配置upstream实现负载均衡
如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用.具体配置过程如下: 1. 在http节点下,添加ups ...
- VBA用户控件
窗体相关 1.显示窗体 UserForm1.show [vbModeless] vbModeless 可选参数,参数设定后,变成无模式窗体.窗体保持显示状态,仍可操作Excel文件. UserFor ...
- [转载]赖勇浩:推荐《Linux 多线程服务器端编程》
推荐<Linux 多线程服务器端编程> 赖勇浩(http://laiyonghao.com) 最近,有一位朋友因为工作需要,需要从网游的客户端编程转向服务器端编程,找我推荐一本书.我推荐了 ...
- android开发学习笔记000
使用书籍:<疯狂android讲义>——李刚著,2011年7月出版 虽然现在已2014,可我挑来跳去,还是以这本书开始我的android之旅吧. “疯狂源自梦想,技术成就辉煌.” 让我这个 ...
- iOS Xcode添加ios10.0的路径
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport