HDU6180
来源:互联网 发布:蔡康永 知乎 编辑:程序博客网 时间:2024/06/05 11:15
排序完后,贪心的选择当前开始时间在前面结束时间离的最近的。
#include <bits/stdc++.h>using namespace std;typedef long long ll;namespace fastIO { #define BUF_SIZE 1000000 //fread -> read bool IOerror = 0; inline char nc() { static char buf[BUF_SIZE], *p1 = buf + BUF_SIZE, *pend = buf + BUF_SIZE; if(p1 == pend) { p1 = buf; pend = buf + fread(buf, 1, BUF_SIZE, stdin); if(pend == p1) { IOerror = 1; return -1; } } return *p1++; } inline bool blank(char ch) { return ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t'; } inline void read(int &x) { char ch; while(blank(ch = nc())); if(IOerror) return; for(x = ch - '0'; (ch = nc()) >= '0' && ch <= '9'; x = x * 10 + ch - '0'); } #undef BUF_SIZE};using namespace fastIO;const int N = 1E5 + 7;typedef pair<int, int> P;P a[N];multiset<int> f;int main(){ // ptr(); int T; read(T); while(T --) { int n; read(n); f.clear(); for(int i = 1;i <= n;i ++) { read(a[i].first); read(a[i].second); } sort(a + 1, a + 1 + n); ll ans = 0; for(int i = 1;i <= n;i ++) { auto it = f.upper_bound(a[i].first); if(it == f.begin()) { ans += a[i].second - a[i].first; f.insert(a[i].second); } else { it --; ans += a[i].second - *it; f.erase(it); f.insert(a[i].second); } } printf("%d %lld\n",f.size(), ans); } return 0;}
阅读全文
0 0
- HDU6180
- HDU6180(贪心)
- HDU6180-Schedule
- HDU6180 Schedule
- HDU6180-Schedule
- 多校10_1010 hdu6180 贪心+STL:multiset
- hdu6180-贪心&互不重叠的线段的组数-Schedule
- java代理(静态代理和jdk动态代理以及cglib代理)
- 冒泡排序
- JavaScript实现单选按钮、复选框赋值方法
- Ubuntu 平台的防火墙关闭命令
- 智慧工程新思想:PDCA循环助力项目管理
- HDU6180
- MARK 1 擦--突然没有外网环境好蛋疼,只能上这个...工作笔记mark
- select和epoll的对比
- poj 2485 (Prim简单题)
- shiro单点登录demo
- poi实现execl2007两级联动
- C语言实现常见的字符串处理函数
- scala和java的关系
- D13 辅助系统汇总flume/azkaban/sqoop