题意:戳这里

思路:很容易发现对于一个车能否移动到最终的位置只要判断路径中得最大高度与自身高端之和是否>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的更多相关文章

  1. bzoj 3718: [PA2014]Parking

    Description 你的老板命令你将停车场里的车移动成他想要的样子. 停车场是一个长条矩形,宽度为w.我们以其左下角顶点为原点,坐标轴平行于矩形的边,建立直角坐标系.停车场很长,我们可以认为它一直 ...

  2. BZOJ 2127: happiness [最小割]

    2127: happiness Time Limit: 51 Sec  Memory Limit: 259 MBSubmit: 1815  Solved: 878[Submit][Status][Di ...

  3. BZOJ 3275: Number

    3275: Number Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 874  Solved: 371[Submit][Status][Discus ...

  4. BZOJ 2879: [Noi2012]美食节

    2879: [Noi2012]美食节 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1834  Solved: 969[Submit][Status] ...

  5. bzoj 4610 Ceiling Functi

    bzoj 4610 Ceiling Functi Description bzoj上的描述有问题 给出\(n\)个长度为\(k\)的数列,将每个数列构成一个二叉搜索树,问有多少颗形态不同的树. Inp ...

  6. BZOJ 题目整理

    bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...

  7. 【sdoi2013】森林 BZOJ 3123

    Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数.第三行包含N个非负整数 ...

  8. 【清华集训】楼房重建 BZOJ 2957

    Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...

  9. 【splay】文艺平衡树 BZOJ 3223

    Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3  ...

随机推荐

  1. 小tip:CSS vw让overflow:auto页面滚动条出现时不跳动

    原文地址:http://www.zhangxinxu.com/wordpress/?p=4552 一.水平居中布局与滚动条跳动的千年难题 当前web届,绝大多数的页面间布局都是水平居中布局,主体定个宽 ...

  2. Java CopyOnWriteArrayList

    1. 为什么需要 CopyOnWriteArrayList ArrayList 的内部实现是一个数组, 并且是动态扩容的, 当插入数据时, 先判断数组是否需要扩容, 如果需要扩容, 则先扩容, 再插入 ...

  3. SQL Server Management Studio 2012 设置脚本默认保存路径

    特别说明,本文是从这里 修改SQL Server Management Studio默认设置提高开发效率. "抄过来的",为方便个人记忆才写此文(非常感谢这哥们儿的分享.) 原文地 ...

  4. C#中的问号

    本人转载自: ①http://msdn.microsoft.com/zh-cn/practices/dd391752.aspx ②http://jhxk.iteye.com/blog/439888 在 ...

  5. 20151210study

    -----------------------------------------------------The election officials were not neutral.选举官员并不是 ...

  6. 设计模式:Context模式

    作者:吴香伟 发表于 2014/09/12 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 Ceph实现中使用了大量派生于Context抽象类的子类,用法简单却很 ...

  7. 图解VMware内存机制

    在写<VMware内存机制初探>之后,原本是计划写一篇<VMware内存机制再探>的,讲一讲VMware内存机制中的另外几个重要内容,比如透明内存共享(TPS, Transpa ...

  8. c# 写着玩的,两个Task并发,一个写队列一个读队列的异常情况

    class Program { class TestEnqueue { static Queue<string> str = new Queue<string>(); publ ...

  9. base64/62 加解密的实现。

    base64/62加解密代码下载地址: http://files.cnblogs.com/files/Kingfans/base64(62)加解密.zip base64: base62:

  10. JQuery初体验

    虽然做b/s也有一年半了,但是还没怎么认真的去看JQuery,趁自己生病的这几天,恶补一下JQuery方面的知识,保持学习的态度,内容很简单,聊以自慰一下>_<.废话不多说,直接上代码了. ...