CodeForce 580D Kefa and Company贪心算法
2016-04-10 19:23
302 查看
从网上看到的方法,结合自己理解写出,确实值得学。
#include <cstdio> #include <utility> #include <cstring> #include <algorithm> using namespace std; const int maxn = 1e5 + 10; int main() { int n, d; while (scanf("%d%d", &n, &d) != EOF) { pair<int, int>a[maxn]; for (int i = 0; i < n; i++) { int x, y; scanf("%d%d", &x, &y); a[i].first = x; a[i].second = y; } sort(a, a + n); __int64 ans = 0, cur = 0, st = 0; for (int i = 0; i < n;) { if (a[i].first - a[st].first >= d) { cur -= a[st].second; st++; } else { cur += a[i].second; i++; } ans = max(ans, cur); } printf("%I64d\n", ans); } return 0; }
相关文章推荐
- 学习进度六
- 采集转码以及模拟浏览器访问
- Android设置Dialog是否可隐藏
- The requested resource (/) is not available
- 深度神经网络如何看待你,论自拍What a Deep Neural Network thinks about your #selfie
- 构建之法阅读笔记03
- 本周学习进度
- 加入VR公司到底需要什么技能,听听过来人怎么说?
- 152. Maximum Product Subarray 动态规划
- 团队博客介绍
- KVM-Introduce
- 学习进度博客六
- 学习进度条04
- JavaWeb总结(三)—JSP
- linux小包集合
- nested exception is java.lang.IllegalArgumentException: Expected MultipartHttpServletRequest: is a M
- Echarts扩展之ajax异步加载tooltip数据
- 广搜最短路(最短时间到达目的地),POJ(3669)
- leetcode编程题(1)Two Sum
- 团队博客介绍