关键词:
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
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
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了接着由于... 查看详情