题目链接: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;
}

CodeForces 754D Fedor and coupons相关推荐

  1. codeforces D. Fedor and coupons 贪心+优先队列

    题目地址:点击打开链接 D. Fedor and coupons time limit per test 4 seconds memory limit per test 256 megabytes i ...

  2. cf 754D Fedor and coupons

    一 原题 D. Fedor and coupons time limit per test 4 seconds memory limit per test 256 megabytes input st ...

  3. Codeforces - Fedor and coupons

    题目链接:Codeforces - Fedor and coupons 先对左端点升序排序. 然后枚举要选的左端点最靠右的边,此时怎么选前面的点呢?肯定是选k个最大的右端点呀. 所以可以用个权值线段树 ...

  4. CF754D Fedor and coupons(堆)

    题目 我们所有的角色都有某些习惯.Fedor 也一样.他在邻近的超市享受购物. 超市的不同货物有不同的整数 ID.对于每个整数也有一个产品的 ID 和这个整数相同.Fedor 有 n n n 张折扣券 ...

  5. Codeforces 467B Fedor and New Game

    Fedor and New Game(位运算+模拟) [题目链接]Problem - 467B - Codeforces 题意:给你m+1个数让你判断所给的数的二进制形式与第m+1个数不想同的位数是否 ...

  6. codeforces754D Fedor and coupons

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  7. codeforces 467B - Fedor and New Game

    看懂题目,反正我半天没看懂... 题目要求找出能和fedor成为朋友的人数,即差异<=k 给你三个数nmk,n是士兵种类,忽略也没问题,m是选手个数(不包括fedor),k是能存在的最大差异,根 ...

  8. Codeforces 1179D Fedor Runs for President [DP,斜率优化]

    Codeforces 思路 考虑把连的那两个点中间的链提出来,那么就会变成一条链,链上的每个点挂着一棵子树的形式. 设那些子树的大小为\(S_1,S2,\cdots\),那么新加的简单路径个数就是 \ ...

  9. 『优先队列』Fedor and coupons

    题目描述 . 题解 这道题可以得到一个结论就是,重叠区间的左端点一定是某一条线段的左端点:否则可以往左移到左端点处来使得答案更优.因此我们可以枚举左端点,查找向右的 k k k 条线段中坐标最小的最大 ...

最新文章

  1. 多年没有管理的技术博客了,即日起开始管理起技术博客
  2. 520这天,我突然意识到,她根本配不上我这么聪明的男人
  3. java(x ) 3的值_java中,设x=2,则表达式 (x++)*3的值是多少 设x=2则表达式(x+
  4. python moviepy 特效编辑
  5. Gradle project refresh failed
  6. cf 559a **
  7. df 命令查看linux磁盘空间
  8. 刘志勇:微博短视频百万级高并发架构
  9. Java EE中的配置管理
  10. Android 解决导入多个module时jar包冲突
  11. 在 Apex 代码中生成 csv 文件
  12. Mycat分库路由规则
  13. Python使用wordnet工具计算词集与词条基本用法(二)
  14. 蓝桥杯 ALGO-22算法训练 数的划分
  15. 泛泰A850 (高通8064+720p)刷4.4专用中文recovery TWRP2.7.1.3版
  16. linux的steam运行游戏,桌面应用|如何使用 Steam Play 在 Linux 上玩仅限 Windows 的游戏...
  17. 北京环球影城游玩攻略
  18. 《论文阅读》PSF-LO: Parameterized Semantic Features Based Lidar Odometry
  19. Android系统启动之BOOT_COMPLETED广播
  20. R语言旋转扇形图的绘制

热门文章

  1. 剑指offer----C语言版----第十五天
  2. 什么是“一书一签”?
  3. FlyTreeView V4.3 破解手记
  4. 【百度小程序】细数百度小程序踩的坑
  5. html 不要忘记结束标签
  6. 金九银十,金三银四(下)
  7. C语言仅凭自学能到什么高度?
  8. Qt中使用GLEW进行OpenGL开发
  9. 自我诊断:是否已经网络成瘾
  10. 自定义OBS插件开发教程