题意:给你一个数m,有多少优惠券,给个n,主角想用多少优惠券。然后接下来时m行,每行两个数,那张优惠券的优惠区间a,b(在a号货物到b号货物之间的所有都可以优惠)

问你,能不能用k张优惠券,是他的优惠区间重叠的部分最大。

今天第一次看优先队列,居然还有这么神奇的东西,omg,太强了

思路就是排序,然后用优先队列乱搞一下。。。

接下来给出代码

#include <iostream>
#include <queue>
#include <algorithm>
#include <stdio.h>
using namespace std;

const int Maxn = 2147483647;

struct Node{
	int l,r;
	int i;
}node[300010];

bool cmp( const Node &a,const Node &b ){
	return ( a.l == b.l ? a.r < b.r:a.l < b.l );
}

int main(){
	int m,n;
	scanf("%d%d",&m,&n);
	for( int i = 1; i <= m; i++ ){
		scanf("%d%d",&node[i].l,&node[i].r);
		node[i].i = i;
	}
	sort( node+1,node+1+m,cmp );
	priority_queue<int,vector<int>,greater<int> > q;
	int inf = -Maxn;
	int x;
	int l,r;
	for( int i = 1; i <= m; i++ ){
		x = node[i].l;
		q.push( node[i].r );
		while( q.top() < x || q.size() > n ){
			q.pop();
		}
		if( q.size() == n ){
			if( inf < q.top() - x + 1 ){
				inf = q.top() - x + 1;
				l = x,r = q.top();
			}
		}
	}
	if( inf == - Maxn ){
		cout << '0' << endl;
		for( int i = 1; i <= n; i++ ){
			printf( "%d ",i );
		}
		printf( "\n" );
		exit(0);
	}else{
		cout << inf << endl;
		for( int i = 1; i <= m; i++ ){
			if( node[i].l <= l && node[i].r >= r ){
				printf("%d ",node[i].i);
				n--;
				if( n == 0 ){
					cout << '\n';
					exit(0);
				}
			}
		}
	}
}

cf754D的更多相关文章

随机推荐

  1. 表格table样式布局设置

    <style> table{ border-collapse:collapse; margin:0 auto;} table tr td{ border:1px solid #000; l ...

  2. TDirectory.GetCreationTime、TDirectory.SetCreationTime获取和设置文件夹创建时间

    使用函数: System.IOUtils.TDirectory.GetCreationTime//获取创建时间 System.IOUtils.TDirectory.SetCreationTime//设 ...

  3. 从IT的角度思考BIM(二):模式与框架

    我们满怀着美好期许,鼓起勇气敲响了 BIM 世界的大门.忽然人群中有人高呼:BIM 已死,大家都散了吧! 这时人群开始骚动起来.“我早就说这玩意是忽悠人的吧,你们不信还偏要来”,“我花了好多钱准备这次 ...

  4. leetcode其余题目

    1.Largest Rectangle in Histogram http://discuss.leetcode.com/questions/259/largest-rectangle-in-hist ...

  5. 根据WSDL生成代理类方式(2)

    运行开发人员工具提示 输入命令行svcutil http://localhost:8080/Test/TestClassPort?wsdl

  6. Django 数据库查询优化

    Django数据层提供各种途径优化数据的访问,一个项目大量优化工作一般是放在后期来做,早期的优化是“万恶之源”,这是前人总结的经验,不无道理.如果事先理解Django的优化技巧,开发过程中稍稍留意,后 ...

  7. BZOJ 1754: [Usaco2005 qua]Bull Math

    Description Bulls are so much better at math than the cows. They can multiply huge integers together ...

  8. Essential Sublime Text Plugins

    Essential Sublime Text Plugins Add some killer tools to your arsenal. View them all at /repo/sublime ...

  9. hdu 3062

    2-SAT的入门题: 网上说这个算法最好的入门教材是:伍昱的<由对称性解2-SAT问题>的ppt和赵爽的论文<2-SAT 解法浅析>: 看了一下伍昱的ppt,很好理解! 而这道 ...

  10. OneAPM Cloud Test——系统性能监控神器

    2015 年 8 月,OneAPM 推出了一款系统性能监控产品--Cloud Test,产品上线以来以「两低一高」的特点迅速成为市场增长率最快的一匹黑马.「两低一高」,即低使用成本.低学习成本以及高服 ...