题意:

和 51nod 1428 活动安排问题 一模一样,只不过还要求一个时间和

http://blog.csdn.net/jaihk662/article/details/77489061

如何求出至少要多少台机器:

把时间段转化成一个入点和一个出点,这样存下2*n个点,之后按坐标从小到大给这2*n个点排序,之后O(n)遍历一遍就好,遇到入点sum++, 遇到出点sum--,遍历时最大的sum便是答案,算上排序复杂度稳定nlogn(注意:排序时坐标相同的点出点优先)

时间求法也很容易:

如果当前sum=5,而ans=4(也就是当前不得不用第5台机器),那么记录下入点的时间,说明第5台机器在这个时候开始使用,同理,第1,2,6,7,8…台机器都一样,那么结束时间怎么求?倒过来再遍历一遍就好了,开始作为结束,结束作为开始,这样两者相减就是每台机器的工作时间,全加在一起就是答案

#include<stdio.h>
#include<algorithm>
using namespace std;
#define LL long long
typedef struct
{LL x;LL flag;
}Point;
Point s[200005];
LL L[100005], R[100005];
bool comp(Point a, Point b)
{if(a.x<b.x || a.x==b.x && a.flag<b.flag)return 1;return 0;
}
int main(void)
{LL T, n, i, a, b, sum, ans;scanf("%lld", &T);while(T--){scanf("%lld", &n);for(i=1;i<=n;i++){scanf("%lld%lld", &a, &b);s[i*2-1].x = a, s[i*2-1].flag = 1;s[i*2].x = b, s[i*2].flag = -1;}n *= 2;sort(s+1, s+n+1, comp);sum = ans = 0;for(i=1;i<=n;i++){sum += s[i].flag;if(sum>ans){ans = sum;L[sum] = s[i].x;}ans = max(ans, sum);}sum = ans = 0;for(i=n;i>=1;i--){sum -= s[i].flag;if(sum>ans){ans = sum;R[sum] = s[i].x;}ans = max(ans, sum);}sum = 0;for(i=1;i<=ans;i++)sum += R[i]-L[i];printf("%lld %lld\n", ans, sum);}return 0;
}

HDU 6180 2017 多校训练:Schedule相关推荐

  1. HDU 6134 2017 多校训练:Battlestation Operational(莫比乌斯反演+积性函数)

    实在太长了直接放题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=6134 这题就是求 考虑当Gcd(i, j)==1时,除了j为1的情况,其它时候i/j一 ...

  2. HDU 6178 2017 多校训练:Monkeys(DFS)

    题意: 有一棵n个节点的树,树上有k只猴子,这k只猴子所在位置可任意指定,但是每个点上最多只能有一只猴子,现在你要切掉尽可能多的边,但必须保证没有任何一只猴子被完全孤立,求最少得保留多少条边 题目还好 ...

  3. HDU 6166 2017 多校训练:Senior Pan(最短路)

    题意: 有一张n个点m条边的有向图,还有一个包含k个点的点集,求出这个点集中任意两点间最短路的最小值 官方题解看不懂.. 如果一条边的两个端点都在这个集合中,就将这条边直接删掉(中间记录下最小值)以后 ...

  4. HDU 6162 2017 多校训练:Ch's gift(树链剖分)

    题意: 有一棵n个节点的树,m次查询,每次查询x, y, a, b表示节点x到y的路径上所有在[a, b]范围内的权值和 树链剖分+线段树 询问离线,按a和b分别排序求出所有小于a和所有小于b+1的权 ...

  5. HDU 6170 2017 多校训练:Two strings(DP)

    题意: 给你两个字符串:第一个字符串只包含小写大写字母 第二个字符串除了字母之外,还有'.'和'*',其中'.'可以当成任意一个字符,'*'表示前面那个字符可以重复若干次 当然也可以重复0次,例如a. ...

  6. 2017 多校训练第二场 HDU 6047 Maximum Sequence(贪心+优先队列)

    Maximum Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  7. (2017多校训练第四场)HDU - 6078 Wavel Sequence dp

    传送门:点击打开链接 定义状态dp[i][j][0]表示以a[i],b[j]结尾的且为波谷的情况总和,dp[i][j][1] 为波峰. 对于某个i,j满足a[i] == b[j],则dp[i][j][ ...

  8. (2017多校训练第一场)HDU - 6034 Balala Power! 贪心

    很容易就想到把每个字母的权重都算出来,然后把权重最大的赋值成25,次大的赋值成24......以此类推. 但是字符串长度最大为100000,也就是说一个字母的权重最大是26^100000次方左右,太大 ...

  9. 2017 多校3 hdu 6061 RXD and functions

    2017 多校3 hdu 6061 RXD and functions(FFT) 题意: 给一个函数\(f(x)=\sum_{i=0}^{n}c_i \cdot x^{i}\) 求\(g(x) = f ...

最新文章

  1. Laravel Dcat-admin 详情页多栏布局开发
  2. P3246 [HNOI2016]序列(查询l-r中所有区间的最小值之和)
  3. 《LINUX下动态链接库的创建与应用》
  4. Vue_error Expected indentation of 2 spaces but found 3 indent问题整理
  5. ML之UliR:利用非线性回归,梯度下降法(迭代十万次)求出学习参数θ,进而求得Cost函数最优值
  6. 程序实现switch语句判断年龄_【回顾】(选择执行语句if else和switch)乐创DIY C语言讲义——3.8节(4)...
  7. 84直方图最大矩形覆盖 · Largest Rectangle in Histogram
  8. java 静态变量与静态初始化块中变量的初始化顺序
  9. python decorator. decorator_decorator在Python中的作用
  10. 微软Azure云服务故障超过24小时,原因竟是——被雷劈了
  11. 符号回归工具之 geppy: Python中的基因表达编程框架
  12. Am2910的指令扩展
  13. 利用原生node.js连接sql数据库
  14. EXCEL实现按照奇偶行填充
  15. 不定式和动名词复合结构是什么
  16. 怀旧服私聊显示服务器后缀,聊天窗口相关设置:有爱怀旧服聊天增强插件简易指南...
  17. rabbit的安装配置过程
  18. 关于FileZilla连接FTP站点上传下载文件
  19. elasticSearch(二)springboot与es的整合
  20. HDU 6608:Fansblog(威尔逊定理)

热门文章

  1. python经典程序实例-Python简单基础小程序的实例代码
  2. python怎么读写文件-python3 excle(python怎么读写excel文件)
  3. python发音1001python发音-python——字符串问题总结
  4. 两个水平排列的div顶部对齐~详细
  5. java request 封装对象_java request请求参数直接封装model对象
  6. Element Ui 关闭对话框清空验证消息,清除form表单的操作
  7. 超级计算机能算数学题吗,圆周率到底能不能算尽?人类拿超级计算机算了一下,结果不敢相信...
  8. 手机重装android系统,手机系统重装
  9. mysql 表 字符集_如何查看MySQL数据库/表/列的字符集?
  10. 【王道计组笔记】总线(2):性能指标分析