题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5720

官方题解:

考虑三角形三条边a,b,c  (a≥b) 的关系a−b<c,a+b>c ,即c∈(a−b,a+b) 。令加入的边为c ,枚举所有边作为a 的情况。对于所有可行的b ,显然与a 相差最小的可以让(a−b,a+b) 覆盖范围最大,所以可以贪心地选择不大于a 的最大的b 。于是我们可以先将边按长度排序,然后a i  和a i+1  建一条线段。线段并是不合法的部分。将所有线段按左端点排序,按序扫描一遍,过程中统计答案即可。时间复杂度O(Tn logn) 。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;typedef long long LL;
typedef pair<LL,LL> Pi;
LL x[100005];
Pi pr[100005];int main()
{int t;scanf("%d",&t);while(t--){int n;LL L,R;scanf("%d%lld%lld",&n,&L,&R);for(int i = 0; i < n; ++i) scanf("%lld",&x[i]);sort(x,x+n);for(int i = 0; i < n-1; ++i){pr[i].first = x[i+1]-x[i];pr[i].second = x[i+1]+x[i];}sort(pr,pr+n-1);LL ans = 0;LL mx = L;for(int i = 0; i < n-1 && pr[i].first <= R; ++i){if(pr[i].first >= mx) ans += (pr[i].first-mx+1);mx = max(mx,pr[i].second);}ans += max(0LL,R+1-mx);printf("%lld\n",ans);}return 0;
}

hdu 5720(贪心)相关推荐

  1. hdu 4982 贪心构造序列

    http://acm.hdu.edu.cn/showproblem.php?pid=4982 给定n和k,求一个包含k个不相同正整数的集合,要求元素之和为n,并且其中k-1的元素的和为完全平方数 枚举 ...

  2. hdu 4974 贪心

    http://acm.hdu.edu.cn/showproblem.php?pid=4974 n个人进行选秀,有一个人做裁判,每次有两人进行对决,裁判可以选择为两人打分,可以同时加上1分,或者单独为一 ...

  3. HDU2111 Saving HDU【贪心】

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

  4. 杭电 2111 Saving HDU (贪心)

    Description 话说上回讲到海东集团面临内外交困,公司的元老也只剩下XHD夫妇二人了.显然,作为多年拼搏的商人,XHD不会坐以待毙的.    一天,当他正在苦思冥想解困良策的时候,突然想到了自 ...

  5. hdu 5501(贪心+01背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5501 现在有A1,B1,C1和A2,B2,C2这两道题,如果先做1再做2的得分是A1-B1*C1+A2 ...

  6. hdu 1055(贪心)

    思路:寻找最大权值,合并这个节点和他的父亲节点,记下这两个节点的拓扑序列,同时新节点的权值为这些节点的算术平均值,直到只有一个节点.因为这个节点必定是访问该节点的父节点之后第一个访问的节点. 证明: ...

  7. hdu 2570 贪心

    贪心的经典题型 该死的精度问题,WA了好几次,以后能用乘的绝不用除!! #include<iostream> #include<algorithm> #include<c ...

  8. HDU2111 Saving HDU 【贪心】

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

  9. hdu 1789 贪心算法

    http://acm.hdu.edu.cn/showproblem.php?pid=1789 此题大致思路,既然要计算最少扣多少分,就要在最后时间之前把扣分最多的作业先安排了.如果扣分一样多的话,那必 ...

最新文章

  1. Serial,Parallel,CMS,G1四大GC收集器特点小结
  2. UserWarning: Update your `Conv2D`
  3. 设计案例——点和圆的关系
  4. Network device support
  5. string转map集合_Map、斗地主案例
  6. 15行代码AC——ZOJ - 4118 Stones in the Bucket(思维题+优化方案)(第十届山东省ACM程序设计竞赛F题)
  7. Android开发之修改项目的仓库地址亲测有效
  8. Android心得8--Internet
  9. 数论 —— 整数分解
  10. Dubbo场景场景配置用法详解
  11. PS打造油画般的风景人像
  12. 7.大数据架构详解:从数据获取到深度学习 --- 批处理技术
  13. windows 下 新建 点开头的文件和文件夹
  14. 原来闭包也可以这么简单
  15. Sum nyoj 欧拉定理简单运用(数论入门)
  16. TSC2004 电阻式触摸屏控制器驱动问题
  17. linux 释放 文件缓存,Linux中手动释放缓存的方法
  18. 虚拟小镇意识保存~认识脑电波
  19. php base64保存为图片
  20. android图片凹凸效果,图像滤镜处理算法:柔化、光照、放大镜、哈哈镜

热门文章

  1. 应用指定显示到副屏_彩易达LED显示屏在税务局的应用-彩易达,LED显示屏,在税务局的应用-LED屏行业...
  2. 神策数据:围绕跨境电商“人货场”,数据如何助力品牌乘风出海?
  3. 深度洞见|从起源到应用,一文详解营销界爆火的 CDP
  4. 最新发布丨金融新基建系列报告:银行业六大中期趋势展望
  5. 百果园付凌峰:线上单月 1.2 亿背后的数据化运营
  6. 透过 OKR 进行项目过程管理 1
  7. CSS height:100%无效
  8. MyEclipse中文网发布
  9. django 灵活的后台查询
  10. proximinty