HDU5270Wool (区间扫描)
来源:互联网 发布:全自动手机降温软件 编辑:程序博客网 时间:2024/06/16 13:41
Wool
Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 918 Accepted Submission(s): 270
Problem Description
At dawn, Venus sets a second task for Psyche.
She is to cross a river and fetch golden wool from violent sheep who graze on the other side.
The sheep are wild and tameless, so Psyche keeps on throwing sticks to keep them away.
There aren sticks on the ground, the length of the i -th stick is ai .
If the new stick she throws forms a triangle with any two sticks on the ground, the sheep will be irritated and attack her.
Psyche wants to throw a new stick whose length is within the interval[L,R] . Help her calculate the number of valid sticks she can throw next time.
She is to cross a river and fetch golden wool from violent sheep who graze on the other side.
The sheep are wild and tameless, so Psyche keeps on throwing sticks to keep them away.
There are
If the new stick she throws forms a triangle with any two sticks on the ground, the sheep will be irritated and attack her.
Psyche wants to throw a new stick whose length is within the interval
Input
The first line of input contains an integer T (1≤T≤10) , which denotes the number of test cases.
For each test case, the first line of input contains single integern,L,R (2≤n≤105,1≤L≤R≤1018) .
The second line containsn integers, the i -th integer denotes ai (1≤ai≤1018) .
For each test case, the first line of input contains single integer
The second line contains
Output
For each test case, print the number of ways to throw a stick.
Sample Input
22 1 31 14 3 101 1 2 4
Sample Output
25HintIn the first example, $ 2, 3 $ are available.In the second example, $ 6, 7, 8, 9, 10 $ are available.
题意:
给定一个大区间[L,R],以及n根木棒的长度,问大区间内有多少个数可以不与现有的木棒构成三角形。
题解:
我们考察任意的两根木棒x,y(x>y),我们分析反面,可以构成三角形的情况,那么能让x,y,z构成三角形的条件是x+y>z且x-y<z,也就是说当z落在(x-y,x+y)区间内的时候,会构成三角形,那么对于某个x,在比他小的y里面我们找一个最大的y即可快速计算出一个区间为[x-y+1,x+y-1],之后我们再在大区间里抹去这些小区间即可。
代码:
//************************************************************************////*Author : Handsome How *////************************************************************************//#include <cstdio>#include <algorithm>#define fur(i,a,b) for(int i=(a);i<=(b);i++)#define min(a,b) ((a)<(b)?(a):(b))#define max(a,b) ((a)>(b)?(a):(b))using namespace std;typedef long long ll;inline void gn(long long&x){ int sg=1;char c;while(((c=getchar())<'0'||c>'9')&&c!='-');c=='-'?(sg=-1,x=0):(x=c-'0'); while((c=getchar())>='0'&&c<='9')x=x*10+c-'0';x*=sg;}inline void gn(int&x){long long t;gn(t);x=t;}inline void gn(unsigned long long&x){long long t;gn(t);x=t;}const int maxn = 1e5+5;ll len[maxn], ans;void del(ll L, ll R, ll l, ll r){//从[L,R]里面抹去[l,r] if(l>R||r<L) return;l = max(l,L);r = min(r,R);ans = ans - (r-l+1);}int main(){int T;gn(T);while(T--){int n;ll L,R;gn(n);gn(L);gn(R);fur(i,1,n)gn(len[i]);sort(len+1,len+1+n);ans = R - L + 1ll;ll l = len[2]-len[1]+1ll, r = len[2]+len[1]-1ll;int now = 3;for(;now<=n;now++){if(len[now]-len[now-1]+1ll>r){del(L,R,l,r);l = len[now]-len[now-1]+1ll;}else{l = min(l,len[now]-len[now-1]+1ll);}r = len[now]+len[now-1]-1ll;}del(L,R,l,r);printf("%I64d\n",ans);}return 0;}
0 0
- HDU5270Wool (区间扫描)
- LA 3905 Meteor / 区间扫描
- ACM 251. [POI2001] 区间(扫描)
- 区间扫描线处理问题
- hdu 区间的价值(RMQ+扫描)
- UVALive 2519 Radar Installation 雷达扫描 区间选点问题
- UVA 10535 - Shooter(扫描+几何+最大重叠区间)
- hdu 1542(扫描线+线段树区间更新)
- UVa 10535 - Shooter (最多区间覆盖的点 + 扫描)
- uvalive 3905 扫描线:求包含区间最多的点
- POJ - 1177 Picture(线段树 扫描线 区间合并)
- hdu 5720 Wool(贪心,扫描线,区间合并)
- HDU5091->线段树维护区间覆盖次数&&扫描线
- [扫描线 + 线段树] 51Nod1672 区间交
- 扫描
- 扫描
- poj 2482 Stars in Your Window(扫描线+区间最值)
- Arab Collegiate Programming Contest 2012G. Archery(求雷达扫描的期望,区间离散化)
- python中str与list效率对比
- 乐观锁和悲观锁
- Android ICS(SDK4.0)新特性 及 GridLayout/GridView/TableLayout的一些比较
- 题目122 Triangular Sums
- linux下创建、修改、删除用户,用户组以及ACL
- HDU5270Wool (区间扫描)
- SVN报错解决
- 网络爬虫 WebCollector 2.x 入门教程
- GridView中 反复调用getView
- linux-硬链接&软链接
- React Native + Flux
- java keyword: package Exception in thread "main" java.lang.NoClassDefFoundError
- 2016.7.29 随记
- js入门笔记