题面

传送门

题意:

给出长度为n的序列b,t,定义一个子序列的值为\(\min\{ b_i\} \times \sum t_i\),求所有子序列中值最大的一个,输出最大值

分析

假如固定某个b[i],则最大值为\(b_i \times \sum t_j (b_j\geq b_i)\),且t[j]为所有满足条件的t[j]中最大的k个

贪心,先按b[i]从大到小排序

然后从左到右扫描一遍,维护一个最小堆,堆里存储最大的k个数

每次把t[i]插入,如果堆的大小超过k就弹出堆顶,然后更新答案

代码

#include<iostream>
#include<cstdio>
#include<queue>
#include<algorithm>
#define maxn 300005
using namespace std;
struct node{
int len;
int beu;
friend bool operator < (node p,node q){
return p.beu>q.beu;
}
}a[maxn];
priority_queue<int,vector<int>,greater<int> >h;
int n,k;
int main(){
scanf("%d %d",&n,&k);
for(int i=1;i<=n;i++){
scanf("%d %d",&a[i].len,&a[i].beu);
}
sort(a+1,a+1+n);
long long sum=0,ans=0;
for(int i=1;i<=n;i++){
h.push(a[i].len);
sum+=a[i].len;
while(h.size()>k){
sum-=h.top();
h.pop();
}
ans=max(ans,sum*a[i].beu);
}
printf("%I64d\n",ans);
}

最新文章

  1. PHP排序函数
  2. django学习日志之自定义用户扩展
  3. Linux资源控制-CPU和内存【转】
  4. 上传至应用商店以及testflight相关。
  5. 原始套接字的简单tcp包嗅探
  6. 谈Delphi中SSL协议的应用(好多相关文章)
  7. 离散信号MATLAB频谱分析程序
  8. expect set timeout -1 永不超时
  9. malloc/free和new/delete的区别汇总
  10. thinkPHP框架学习笔记
  11. mybatis调用oracle存储过程的几个参考例子
  12. 深入理解Spring Redis的使用 (七)、Spring Redis 使用 jackson序列化 以及 BaseDao代码
  13. PHP : MySQLi【面向过程】操作数据库【 连接、建库、建表、增、删、改、查、关闭】
  14. 由n个元素组成的数组,n-2个数出现了偶数次,两个数出现了奇数次,且这两个数不相等,如何用O(1)的空间复杂度,找出这两个数
  15. Unity3D学习笔记(二十五):Json
  16. phpStudy配置站点 解决You don&#39;t have permission to access / on this server
  17. Zookeeper 快速理解
  18. SVN设置没有写log不能commit
  19. addslashes — 使用反斜线引用字符串
  20. IO流常规操作

热门文章

  1. jsp:useBean的属性class值一直报错的问题
  2. NHibernet 事务 修改操作,事务没提交,数据库数据却同步(修改)了
  3. 8VC Venture Cup 2017 - Elimination Round - A
  4. python wxpython
  5. C#高级编程笔记 (1至6章节)数组,类/方法/泛型
  6. iPython清屏命令
  7. 项目中有 xxxx 不能被json序列化
  8. spring-boot整合mongodb的案例
  9. 【HDOJ6586】String(枚举)
  10. 北风设计模式课程---UML类图各符号含义