bzoj 4781: [Usaco2017 Open]Paired Up
来源:互联网 发布:90版 封神榜 知乎 编辑:程序博客网 时间:2024/06/05 04:34
→题目链接←
每次把最大的牛与最小的牛合并,最终结果一定是最大值最小的
所以我们用优先队列维护一个大根堆,再维护一个小根堆,每次合并更新下答案就好
靠,排个序就好,我是智障,不改了
代码:
#include<iostream>#include<cstring>#include<string>#include<algorithm>#include<queue>#include<cstdio>using namespace std;struct node1{int sum,val,num;friend bool operator < (node1 a,node1 b){return a.val<b.val;}};struct node2{int sum,val,num;friend bool operator < (node2 a,node2 b){return a.val>b.val;}};int n;priority_queue<node1>q1;priority_queue<node2>q2;int ans=0;int main(){scanf("%d",&n);node1 t1;node2 t2;for(int i=1; i<=n; i++){scanf("%d%d",&t1.sum,&t1.val);t2.sum=t1.sum;t2.val=t1.val;t1.num=t2.num=i;q1.push(t1);q2.push(t2);}t1.sum=t2.sum=0;t1.num=0;t2.num=1;while(t1.num!=t2.num){if(t1.sum==0)t1=q1.top(),q1.pop();if(t2.sum==0)t2=q2.top(),q2.pop();if(t1.num==t2.num){ans=max(ans,t1.val*2);break;}int x=min(t1.sum,t2.sum);ans=max(ans,t1.val+t2.val);t1.sum-=x;t2.sum-=x;}printf("%d\n",ans);return 0;}
阅读全文
0 0
- BZOJ 4781 Usaco2017 Open Paired Up
- BZOJ 4781: [Usaco2017 Open]Paired Up 贪心
- bzoj 4781: [Usaco2017 Open]Paired Up
- bzoj4781[Usaco2017 Open]Paired Up
- 【USACO-2017-OPEN-银组】Paired Up
- Paired Up
- Paired Up
- BZOJ 4776 Usaco2017 Open Modern Art
- BZOJ 4778 Usaco2017 Open COWBASIC 矩阵乘法
- BZOJ 4780 Usaco2017 Open Modern Art 2
- BZOJ 4782 Usaco2017 Open Bovine Genomics
- BZOJ 4777 Usaco2017 Open Switch Grass Kruskal+线段树
- BZOJ 4779 Usaco2017 Open Bovine Genomics Trie树
- BZOJ 4776([Usaco2017 Open]Modern Art-想法题)
- bzoj 4780: [Usaco2017 Open]Modern Art 2 (模拟)
- bzoj 4776: [Usaco2017 Open]Modern Art 二维差分
- USACO——Paired Up
- bzoj 4777: [Usaco2017 Open]Switch Grass 线段树+最小生成树+set
- Java8源码-TreeSet
- Leetcode 653. Two Sum IV
- 推荐一个不错的 Chrome 插件,百变皮肤,还可以去广告
- IC卡——基础知识
- Canvas
- bzoj 4781: [Usaco2017 Open]Paired Up
- Codeforces 842C
- vim查看寄存器里面的内容
- Java集合Map接口与Map.Entry学习
- 如何使用Veeam One默认安装出来的Sql Server数据库
- 丢失的第一个正整数-LintCode
- win7 c盘空间不足怎么扩大
- switch 对 String 的支持
- GOS系列之在自己的程序使用GOS