CodeForces 754D Fedor and coupons
来源:互联网 发布:java怎么写图形界面 编辑:程序博客网 时间:2024/06/02 04:14
题目链接:http://codeforces.com/contest/754/problem/D
题意:给你n个优惠券,每个优惠券是一个区间,他能给这个区间的所有商品进行打折,现让你选择k个优惠券,使得能够重复打折的商品最大,让你输出有多少个商品被打折了,并输出你选择的优惠券编号
解析!:其实说白了就是给你n个区间,每个区间会覆盖一个范围,让你选择k个区间,使得你重复覆盖的范围尽可能大,那么我们可以按照左区间排序从小到大排序,然后去维护一个大小为k的优先队列,按右区间小的现出来,答案就是此时的右区间减左区间
#include <bits/stdc++.h>using namespace std;const int maxn = 3e5+100;struct node{ int l,r; int id; node() {} node(int _l,int _r,int _id) { l = _l; r = _r; id = _id; } bool operator < (const node &b)const { return l<b.l; }}a[maxn];int main(void){ int n,k; scanf("%d %d",&n,&k); for(int i=0;i<n;i++) { scanf("%d %d",&a[i].l,&a[i].r); a[i].id = i+1; } sort(a,a+n); int ans = 0,l,r; priority_queue<int,vector<int>,greater<int> >q; for(int i=0;i<n;i++) { q.push(a[i].r); if(q.size()>k) q.pop(); int sum = q.top()-a[i].l+1; if(ans<sum && q.size()==k) { ans = sum; l = a[i].l; r = a[i].l+sum-1; } } printf("%d\n",ans); if(ans==0) { for(int i=1;i<=k;i++) printf("%d ",i); puts(""); } else { for(int i=0;i<n;i++) { if(a[i].l<=l && a[i].r >=r) { printf("%d ",a[i].id); k--; } if(k==0) break; } puts(""); } return 0;}
0 0
- Codeforces 754 D Fedor and coupons
- 【codeforces 754D】Fedor and coupons
- codeforces 754D. Fedor and coupons
- CodeForces 754D Fedor and coupons
- Codeforces 754 D Fedor and coupons
- codeforces 754D Fedor and coupons(优先队列)
- codeforces 754D Fedor and coupons (优先队列)
- Codeforces Round #390 (Div. 2//754D. Fedor and coupons
- Codeforces 754 D Fedor and coupons【优先队列】
- Codeforces Round #390 (Div. 2) D. Fedor and coupons
- Codeforces Round #390 (Div. 2) D. Fedor and coupons
- Codeforces Round #390 (Div. 2) D - Fedor and coupons (贪心)
- Codeforces Round #390 (Div. 2)D Fedor and coupons
- codeforces D. Fedor and coupons 贪心+优先队列
- Codeforces 754D Fedor and coupons binary search, data structures, greedy, sortings
- codeforces 754D Fedor and coupons【优先队列+贪心*好题】
- codeforces round390 div2 C Fedor and coupons
- Codeforces Round #390(Div. 2)D. Fedor and coupons【优先队列】
- Algorithm Review 3 二分搜索树
- [Leetcode]_23 Merge k Sorted Lists
- 关于fd和fp(fd:file descirptor fp:file pointor)
- 欢迎使用CSDN-markdown编辑器
- win10系统oracle的图文安装教程、以及与32位plsql的连接
- CodeForces 754D Fedor and coupons
- 一个好的算法工程应该具备哪几点要素?
- C++ using关键字作用总结
- 发布项目全过程
- Windows Apache Vhost 分析
- Vijos P1217 乒乓球【模拟+输入输出】
- Linux下mysql的安装
- 算法学习笔记--排序之快速排序
- Python 3基础教程31-urllib模块