hdu_5720_Wool(脑洞)
题目连接:hdu_5720_Wool
题意:
给你N个数,然后给你一个区间,问你在这个区间内有多少数可以不与这N个数任选两个出来组成三角形
题解:
这里我还是贴官方的题解算了
考虑三角形三条边a,b,ca,b,c (a \ge b)(a≥b)的关系a - b < c, a + b > ca−b<c,a+b>c,即c \in (a-b,a+b)c∈(a−b,a+b)。
令加入的边为cc,枚举所有边作为aa的情况。对于所有可行的bb,显然与aa相差最小的可以让(a-b,a+b)(a−b,a+b)覆盖范围最大,所以可以贪心地选择不大于aa的最大的bb。
于是我们可以先将边按长度排序,然后a_iai和a_{i + 1}ai+1建一条线段。线段并是不合法的部分。
将所有线段按左端点排序,按序扫描一遍,过程中统计答案即可。
时间复杂度O(Tn\ \log n)O(Tn logn)。
#include<cstdio>
#include<algorithm>
#define F(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long long LL;
typedef pair<LL,LL>P; const int N=1e5+;
LL a[N],l,r;
P sq[N];
int main(){
int t,n;
scanf("%d",&t);
while(t--){
scanf("%d%lld%lld",&n,&l,&r);
F(i,,n)scanf("%lld",a+i);
sort(a+,a++n);
F(i,,n-){
sq[i].first=a[i+]-a[i];
sq[i].second=a[i]+a[i+];
}
sort(sq+,sq+n);
LL ans=;
F(i,,n-){
if(sq[i].second<=l)continue;
if(sq[i].first>r)break;
if(sq[i].first>=l)ans+=sq[i].first-l+;
l=sq[i].second;
if(l>r)break;
}
if(l<=r)ans+=r-l+;
printf("%lld\n",ans);
}
return ;
}
hdu_5720_Wool(脑洞)的更多相关文章
- PHP基础班初学心得:脑洞实验-JS变量存储函数与return的一些问题
本人刚参加PHP基础班培训第一天,由于之前毫无基础,分享的心得可能不规范,方法也许也"旁门左道",不能保证质量,只作自己总结学习,也希望能帮助到同样是初学者的朋友们,共同进步. 在 ...
- 「脑洞」图片转HTML(支持动画)
也许是受到很久以前看到的这玩意儿的原因:The Shapes of CSS 现在开脑洞写了个自动转换,顺便支持了动画……嗯,纯 CSS (:з」∠) 主要步骤就是用 Python 读图片,然后把像素全 ...
- 【BZOJ-4592】脑洞治疗仪 线段树
4592: [Shoi2015]脑洞治疗仪 Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 69 Solved: 38[Submit][Status] ...
- 图论(KM算法,脑洞题):HNOI 2014 画框(frame)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABPoAAANFCAIAAABtIwXVAAAgAElEQVR4nOydeVxTV/r/n9ertaJEC4
- BCTF Web Code–考脑洞,你能过么?
BCTF Web Code–考脑洞,你能过么? 1)打开链接,是一张图片 根据URL特点推断可能是有文件包含漏洞 2) 将jpg参数修改成index.php,查看源代码,发现base64编码后的代码 ...
- UVA1103-Ancient Messages(脑洞+dfs)
Problem UVA1103-Ancient Messages Accept: 1176 Submit: 6103 Time Limit: 3000 mSec Problem Descriptio ...
- 【题解】Luogu P4344 [SHOI2015]脑洞治疗仪
原题传送门:P4344 [SHOI2015]脑洞治疗仪 前置芝士:珂朵莉树 窝博客里对珂朵莉树的介绍 没什么好说的自己看看吧 珂朵莉树好题啊 我一开始一直Re65 后来重构代码就ac了,或许是rp问题 ...
- hdu 5308 (2015多校第二场第9题)脑洞模拟题,无语
题目链接:http://acm.hdu.edu.cn/listproblem.php?vol=44 题意:给你n个n,如果能在n-1次运算之后(加减乘除)结果为24的输出n-1次运算的过程,如果不能输 ...
- 【BZOJ4592】[Shoi2015]脑洞治疗仪 线段树
[BZOJ4592][Shoi2015]脑洞治疗仪 Description 曾经发明了自动刷题机的发明家SHTSC又公开了他的新发明:脑洞治疗仪--一种可以治疗他因为发明而日益增大的脑洞的神秘装置. ...
随机推荐
- 【ADT】队列的基本C语言实现
queue.h #ifndef _QUEUE_H_ #define _QUEUE_H_ #include <stdbool.h> #define MAXQUEUE 10 // 定义队列类型 ...
- JavaScript实现本地数据简单存取以及Json数据存取
1.判断本地存储是否可用: if(window.localStorage) { // localStorge可用 }else { // localStorge不可用 } 2.存储数据: // 获取本地 ...
- cocos2d-x 获得系统语言繁体
IosLocalUtil.h #ifndef __IOS_LOCALUTIL_H__ #define __IOS_LOCALUTIL_H__ class IosLocalUtil{ public: s ...
- android 优化
1. 使用原生Sqlite语句进行增删改查的操作,而不是使用ContentProvider来封装操作. 2. 对于需要一次性修改多个数据时,可以考虑使用SQLite的事务方式批量处理.
- 《C++ Primer》之面向对象编程(四)
纯虚函数 在前面所提到过的 Disc_item 类提出了一个有趣的问题:该类从 Item_base 继承了 net_price 函数但没有重定义该函数.因为对 Disc_item 类而言没有可以给予该 ...
- IP子网掩码划分及设置
IP子网掩码划分及设置 定长子网掩码: 一.子网掩码的计算 TCP/IP网间网技术产生于大型主流机环境中,它能发展到今天的规模是当初的设计者们始料未及的.网间网规模的迅速扩展对IP地址模式的威胁并不是 ...
- Chapter 2 Open Book——18
"Wow," Mike said. "It's snowing."I looked at the little cotton fluffs that were ...
- LeetCode OJ 110. Balanced Binary Tree
Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...
- shell:crontab
crontab */1 * * * * (cd /home/q/system/project; /usr/bin/lockf -t 0 /tmp/discuz_bbs_audit.lock /usr/ ...
- IBM Mq Spring JMS 的xml配置
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...