bzoj3715[pa2014]lustra

wfj_2048 wfj_2048     2022-09-23     329

关键词:

Description

Byteasar公司专门外包生产带有镜子的衣柜。
刚刚举行的招标会上,有n个工厂参加竞标。所有镜子都是长方形的,每个工厂能够制造的镜子都有其各自的最大、最小宽度和最大、最小高度。镜子不可以旋转。
如果存在某家工厂满足这样的条件:其他所有工厂能够制造的镜子,它都能够制造。那么这家工厂显然会胜出。若不存在,评判工作将会遇到麻烦。Byteasar想知道,是否存在某家工厂符合上述条件。

Input

第一行有一个整数t(1<=t<=10),表示测试数据数量。
对于每一组测试数据,第一行有一个整数n(2<=n<=100000)。接下来n行,每行有四个整数w1,w2,h1,h2(1<=w1<=w2<=10^9,1<=h1<=h2<=10^9),表示这家工厂能够制造的镜子的宽度w、高度h需要满足w1<=w<=w2,h1<=h<=h2。

Output

输出共有t行,每行为TAK(是)或NIE(否),表示是否存在某家工厂符合条件。

Sample Input

3
3
2 3 3 5
1 4 2 6
1 3 4 6
3
1 5 1 3
2 4 1 3
3 4 2 5
4
1 2 1 10
1 2 3 8
2 2 7 10
1 2 1 10

Sample Output

TAK
NIE
TAK

 

正解:模拟。

简单模拟,记录前缀后缀最小最大值即可。

 

 1 #include <bits/stdc++.h>
 2 #define il inline
 3 #define RG register
 4 #define ll long long
 5 #define inf (1<<30)
 6 #define N (100010)
 7 
 8 using namespace std;
 9 
10 int w1[N],h1[N],w2[N],h2[N],pw1[N],ph1[N],pw2[N],ph2[N],sw1[N],sh1[N],sw2[N],sh2[N],n;
11 
12 il int gi(){
13   RG int x=0,q=1; RG char ch=getchar();
14   while ((ch<0 || ch>9) && ch!=-) ch=getchar();
15   if (ch==-) q=-1,ch=getchar();
16   while (ch>=0 && ch<=9) x=x*10+ch-48,ch=getchar();
17   return q*x;
18 }
19 
20 il void work(){
21   n=gi(),sw1[n+1]=sh1[n+1]=inf,sw2[n+1]=sh2[n+1]=0;
22   for (RG int i=1;i<=n;++i){
23     w1[i]=gi(),w2[i]=gi(),h1[i]=gi(),h2[i]=gi();
24     pw1[i]=min(pw1[i-1],w1[i]),ph1[i]=min(ph1[i-1],h1[i]);
25     pw2[i]=max(pw2[i-1],w2[i]),ph2[i]=max(ph2[i-1],h2[i]);
26   }
27   for (RG int i=n;i;--i){
28     sw1[i]=min(sw1[i+1],w1[i]),sh1[i]=min(sh1[i+1],h1[i]);
29     sw2[i]=max(sw2[i+1],w2[i]),sh2[i]=max(sh2[i+1],h2[i]);
30   }
31   for (RG int i=1,mnw,mnh,mxw,mxh;i<=n;++i){
32     mnw=min(pw1[i-1],sw1[i+1]),mnh=min(ph1[i-1],sh1[i+1]);
33     mxw=max(pw2[i-1],sw2[i+1]),mxh=max(ph2[i-1],sh2[i+1]);
34     if (w1[i]<=mnw && h1[i]<=mnh && w2[i]>=mxw && h2[i]>=mxh){ puts("TAK"); return; }
35   }
36   puts("NIE"); return;
37 }
38 
39 int main(){
40 #ifndef ONLINE_JUDGE
41   freopen("Lustra.in","r",stdin);
42   freopen("Lustra.out","w",stdout);
43 #endif
44   pw1[0]=ph1[0]=inf;
45   RG int T=gi(); while (T--) work(); return 0;
46 }

 

bzoj3715[pa2014]lustra

DescriptionByteasar公司专门外包生产带有镜子的衣柜。刚刚举行的招标会上,有n个工厂参加竞标。所有镜子都是长方形的,每个工厂能够制造的镜子都有其各自的最大、最小宽度和最大、最小高度。镜子不可以旋转。如果存在某家... 查看详情

[pa2014]lustra

DescriptionByteasar公司专门外包生产带有镜子的衣柜。刚刚举行的招标会上,有n个工厂参加竞标。所有镜子都是长方形的,每个工厂能够制造的镜子都有其各自的最大、最小宽度和最大、最小高度。镜子不可以旋转。如果存在某家... 查看详情

bzoj3714:[pa2014]kuglarz

3714:[PA2014]KuglarzTimeLimit: 20Sec  MemoryLimit: 128MBSubmit: 1151  Solved: 611[Submit][Status][Discuss]Description魔术师的桌子上有n个杯子排成一行,编号为1,2,…,n,其中某些杯子底下藏有一个小球, 查看详情

bzoj3714pa2014kuglarz

3714:[PA2014]KuglarzTimeLimit: 20Sec  MemoryLimit: 128MBSubmit: 976  Solved: 543[Submit][Status][Discuss]Description魔术师的桌子上有n个杯子排成一行,编号为1,2,…,n,其中某些杯子底下藏有一个小球,如 查看详情

bzoj3721pa2014finalbazarek贪心

【BZOJ3721】PA2014FinalBazarekDescription有n件商品,选出其中的k个,要求它们的总价为奇数,求最大可能的总价。Input第一行一个整数n(1<=n<=1000000),表示商品数量。接下来一行有n个整数,表示每件商品的价格,范围在[1,10^9]。接下... 查看详情

bzoj37273727:pa2014finalzadanie(递推)

3727:PA2014FinalZadanieTimeLimit: 10Sec  MemoryLimit: 128MBSubmit: 279  Solved: 121Description吉丽YY了一道神题,题面是这样的:“一棵n个点的树,每条边长度为1,第i个结点居住着a[i]个人。假设在i结点举行会议,所有... 查看详情

最小生成树bzoj3714[pa2014]kuglarz

3714:[PA2014]KuglarzTimeLimit: 20Sec  MemoryLimit: 128MBSubmit: 701  Solved: 394[Submit][Status][Discuss]Description魔术师的桌子上有n个杯子排成一行,编号为1,2,…,n,其中某些杯子底下藏有一个小球,如 查看详情

bzoj3714[pa2014]kuglarz*

bzoj3714[PA2014]Kuglarz题意:n个杯子排成一行,花费c_ij元,可以知道杯子i,i+1,…,j底下藏有球的总数的奇偶性。求问至少需要花费多少元才能保证猜出哪些杯子底下藏着球。题解:令杯子1..i的和为sum[i],那么当知道sum[i]和sum[i-1]... 查看详情

bzoj3714[pa2014]kuglarz最小生成树(代码片段)

 [PA2014]KuglarzTimeLimit: 20Sec  MemoryLimit: 128MBSubmit: 1335  Solved: 672[Submit][Status][Discuss]Description魔术师的桌子上有n个杯子排成一行,编号为1,2,…,n,其中某些杯子底 查看详情

bzoj3714[pa2014]kuglarz最小生成树

【BZOJ3714】[PA2014]KuglarzDescription魔术师的桌子上有n个杯子排成一行,编号为1,2,…,n,其中某些杯子底下藏有一个小球,如果你准确地猜出是哪些杯子,你就可以获得奖品。花费c_ij元,魔术师就会告诉你杯子i,i+1,…,j底下藏... 查看详情

[bzoj3709][pa2014]bohater_贪心

bzoj-3709PA-2014Bohater题目大意:在一款电脑游戏中,你需要打败n只怪物(从1到n编号)。为了打败第i只怪物,你需要消耗d[i]点生命值,但怪物死后会掉落血药,使你恢复a[i]点生命值。任何时候你的生命值都不能降到0(或0以下)... 查看详情

bzoj3713:[pa2014]iloczyn(代码片段)

【传送门:BZOJ3713】简要题意:  给出一个数,判断这个数能否是两个斐波那契数列的数的乘积题解:  水题,因为斐波那契数列增长得很快,所以很快就能达到10^9的级别  所以取个50(应该取多了一点),然后O(2500)做就... 查看详情

bzoj3709:[pa2014]bohater(贪心)

  贪心...  可以回血的按d[i]升序防止死掉  不能回血的按a[i]降序,因为只考虑d我们要扣除的血量是一定的,为了不死显然回血多的放前面更好#include<iostream>#include<cstring>#include<cstdlib>#include<cstdio>#include&l... 查看详情

[bzoj3712][pa2014]fiolki(代码片段)

description题面datarange[0lem<nle200000,0lekle500000]solution之前本人一直煞笔地思考暴力是否可行考虑按照操作关系直接构树,之后按照每个反应中两点在树上的(lca)深度排序最后依次考虑每个反应即可虽然说建出来的也是个(Kruskal)重构... 查看详情

bzoj3716/4251[pa2014]muzeum

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3716http://www.lydsy.com/JudgeOnline/problem.php?id=4251【题解】非常妙的网络流转化首先可以把警卫和宝藏看成最大权闭合子图,用最小割的那种建模方法,即一开始加进来所有宝藏的价值然后S... 查看详情

[bzoj3714][pa2014]kuglarz

bzojsol显然你要知道每个位置下球的情况就要知道每个\(sum_i-sum_i-1\)吧。其实一个询问\(i,j\)就是告诉你\(sum_j-sum_i-1\)的奇偶性,那么此时\(sum_j\)和\(sum_i-1\)这两个变量就相互关联了吧。那么实际上就是要你使用最小的代价,把\(sum_1... 查看详情

bzoj3714:[pa2014]kuglarz

呃。。好像弃坑了好久=v=。。本来打算在bzoj每刷10题合起来写一份题解。。但是1个月好像还刷不到10题的样子(水题除外),所以还是单独写一下题解。。Description魔术师的桌子上有n个杯子排成一行,编号为1,2,…,n,其中某些杯... 查看详情

bzoj3709[pa2014]bohater

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3709【题解】打完怪最后的体力是固定的,设为lst我们考虑回血量>=扣血量的怪,这些肯定优先打,顺序肯定是按照扣血量从小到大打,这一定是最优策略,打不了就是NIE了接着由于... 查看详情