考虑三个树枝:a,b,c
若c是将要抛出的树枝,那么形成三角形的条件是
a+b>c and a-b<c 可以写成 c属于开区间(a-b,a+b)
对于每个C和许许多多的其他边,如何保证C不构成三角形?
可以看到:对于每个a,要使得这个(a-b,a+b)尽可能的大,就要让b在小于a的基础上尽可能地大
那么我们可以排序等到n-1个这样的区间。只要C不在这些区间内,就一定不会构成三角形。
那么问题转化为区间问题了。
我们把包含在(L,R)区间且不与以上的所有区间相交的部分累加起来就得到了结果
首先离散化,-1代表进区间,1代表出区间
1.当上一个区间已经出来而进入下一个区间时,两个区间中间的部分可以积累
2.L到第一个区间的左边界可以积累
3.最后一个区间的有边界到R可以积累

#include <bits/stdc++.h>
#define MP(x,y) make_pair(x,y)
using namespace std;
typedef long long LL;
const int Max=1e5+;
LL A[Max];
pair<LL,LL> B[Max*];
int main()
{
int T;
for(scanf("%d",&T);T;T--)
{
int n;
LL L,R;
scanf("%d%I64d%I64d",&n,&L,&R);
for(int i=;i<n;i++)
{
scanf("%I64d",&A[i]);
}
sort(A,A+n);
int top=;
for(int i=;i<n;i++)
{
B[top].first=A[i]-A[i-];
B[top].second=-;
top++;
B[top].first=A[i]+A[i-];
B[top].second=;
top++;
}
sort(B,B+top);
int count=;
LL pre=,ans=,dis,disr,disl;
for(int i=;i<top;i++)
{
if(count==)
{
disr=min(R,B[i].first);
disl=max(L,pre);
dis=disr-disl+;
if(dis>=) ans+=dis;
}
count+=B[i].second;
pre=B[i].first;
}
disr=R;disl=max(L,pre);
dis=disr-disl+;
if(dis>=) ans+=dis;
printf("%I64d\n",ans);
}
return ;
}

hdu 5720的更多相关文章

  1. hdu 5720 Wool

    hdu 5720 问题描述 黎明时,Venus为Psyche定下了第二个任务.她要渡过河,收集对岸绵羊身上的金羊毛. 那些绵羊狂野不驯,所以Psyche一直往地上丢树枝来把它们吓走.地上现在有n n ...

  2. hdu 5720 BestCoder 2nd Anniversary Wool 推理+一维区间的并

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5720 题意:有n(n <= 105)个数 ,每个数小于等于 1018:问在给定的[L,R]区间中 ...

  3. hdu 5720(贪心+区间合并)

    Wool Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Subm ...

  4. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  5. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

  6. hdu 4859 海岸线 Bestcoder Round 1

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...

  7. HDU 4569 Special equations(取模)

    Special equations Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  8. HDU 4006The kth great number(K大数 +小顶堆)

    The kth great number Time Limit:1000MS     Memory Limit:65768KB     64bit IO Format:%I64d & %I64 ...

  9. HDU 1796How many integers can you find(容斥原理)

    How many integers can you find Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d ...

随机推荐

  1. ui-router中的锚点问题(angular中的锚点问题)

    angular.module('anchorScrollExample', []) .controller('ScrollController', ['$scope', '$location', '$ ...

  2. Socket accept failed

    启动tomcat显示如下错误: java.net.SocketException: select failed at java.net.PlainSocketImpl.socketAccept(Nat ...

  3. CSS自动换行

    style="word-break:break-all;word-wrap:break-word;"

  4. HTTP Client工具类

    HTTP Client工具类: import org.apache.http.Header;import org.apache.http.HttpEntity;import org.apache.ht ...

  5. 安装软件 报错1304 C:\Program Files\Common Files\VMware\VMware VMRC Plug-in\Firefox\dbghelp.dll验证您对该目录具有访问权限

    现在情况是C:\Program Files\Common Files\VMware\VMware VMRC Plug-in\Firefox这个文件夹里面没有dbghelp.dll文件,就需要在百度上面 ...

  6. .net加密解密

    .net加密概述 .net加密编程模型 .net加密解密类

  7. ceph实践: 搭建环境

    作者:吴香伟 发表于 2014/09/26 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 本节主要参考官网的ADDING/REMOVING OSDS章节. 同步 ...

  8. Tp field 字段是可以添加函数的

    $info = M('Order')->alias('a') ->field('count(DISTINCT(a.order_user_id)) as buy_user_num,count ...

  9. vs

    https://www.visualstudio.com/downloads/download-visual-studio-vs

  10. C# 动态加载程序集dll (实现接口)

    一.程序集(接口程序集):LyhInterface.Dll namespace LyhInterface { public interface ILyhInterface { void Run(); ...