hdu 5481 Desiderium(高效)
2015-10-11 21:48
381 查看
题目链接:hdu 5481 Desiderium
代码
#include <cstdio> #include <cstring> #include <vector> #include <algorithm> using namespace std; typedef pair<int,int> pii; typedef long long ll; const int maxn = 1e5 + 5; const int mod = 1e9 + 7; int N, P[maxn]; vector<pii> G; void init () { int l, r; scanf("%d", &N); G.clear(); for (int i = 1; i <= N; i++) { scanf("%d%d", &l, &r); G.push_back(make_pair(l, 1)); G.push_back(make_pair(r, -1)); } sort(G.begin(), G.end()); } int solve () { int c = 0, p = 0, n = G.size(), ret = 0; while (p < n) { c += G[p++].second; while (p < n && G[p].first == G[p-1].first) c += G[p++].second; if (p == n) break; int len = G[p].first - G[p-1].first; ret = (ret + 1LL * len * (P[c]-1) % mod * P[N-c] % mod) % mod; } return ret; } int main () { P[0] = 1; for (int i = 1; i < maxn; i++) P[i] = P[i-1] * 2 % mod; int cas; scanf("%d", &cas); while (cas--) { init(); printf("%d\n", solve()); } return 0; }
相关文章推荐
- 截取web页面访问时间(Apache)
- IOS 录音与播放
- manacher算法实现
- linux下的软件管理(yum仓库)
- STM32输出2路PWM-------------------------------major
- C/C++基础总结(一)
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-02-Example
- 面试,一点小心得
- CodeForces 128D Numbers [想法题/贪心]
- AngularJS学习总结
- php的几种标记
- 最长上升子序列 O(nlogn)解法 (转)
- 15、Hibernate的原生sql查询,优化Hibernate的查询效率
- 产品UI设计排版的四个基本原则
- js typeof instanceof
- XAMMP Port 443 in use by
- hdu 5480 Conturbatio(水)
- 系统开发技术栈
- 博弈论学习小结及博文推荐
- Oracle Flashback技术之Flashback Table