挂缀codevs2382
来源:互联网 发布:l36h刷机软件 编辑:程序博客网 时间:2024/06/06 01:26
题目描述 Description
“珠缀花蕊,人间几多酸泪”……
挂缀在很早就被人们作为一种装饰品,垂坠的风韵,华丽摇曳的摆动,展现出一种与众不同的优雅与高贵。而我们的主人公小Q,正想买一条漂亮的挂缀放在寝室里作为装饰。
挂坠的构成,是由若干粒缀珠相互连接而成。每一个缀珠由三部分组成:分别是珠子、珠子上方的连接环与珠子下方的挂钩(如下图) 。我们可以简单的认为从上往下数的第 i 个缀珠是将它的连接环套在其上方(也就是第 i-1 个)缀珠的挂钩之上(第一个除外) 。小 Q想买一根足够长的挂缀,这样显得更有韵味☺
然而商店的老板告诉小Q,挂缀是不可能做到任意长的,因为每一个珠子都受到重力作用,对其上方的挂钩有一定的拉力,而挂钩的承受能力是有限的。老板还告诉小 Q,他一共拥有 N 个珠缀(假设每一个珠缀都很漂亮,小 Q 都很喜欢) ,每个珠缀都有其各自的重量与承受能力。一个挂缀是稳定的,当且仅当对于其上的每一个珠缀,它下方所有珠缀的重量和(不包含自身)不超过其挂钩的承受能力。
小Q希望她的挂缀尽量长,你能帮她计算出最长可能的稳定挂缀么?当然,如果有多个可选方案,小Q希望总重量最小的。
输入描述 Input Description
第一行包含一个正整数 N,表示商店拥有的珠缀数目。
接下来 N行,每行两个整数(Ci , Wi),分别表示第i 个珠缀的承受能力与重量。
输出描述 Output Description
包行两行。第一行包含一个整数L,表示可以找到的最长稳定挂缀长度。
第二行包含一个整数 W,表示可以找到的长度为 L 的稳定挂缀中的最小重量和。
样例输入 Sample Input
4
3 5
5 1
3 2
4 6
样例输出 Sample Output
3
8
数据范围及提示 Data Size & Hint
对于 30%的数据,N ≤ 10000;
对于 100%的数据,N ≤ 200000;
对于所有的数据,Wi, Ci不超过231
。
Q
动脑题;
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std;typedef long long ll;const ll MAXN=200001;ll n,W,a[MAXN],ans;struct hh{ ll c,w,s;}ma[MAXN];bool cmp(hh a,hh b){ return a.s<b.s;}bool operator < (hh a,hh b){ return a.w<b.w;}priority_queue<hh>q;void solve(){ cin>>n; for(ll i=1;i<=n;i++) scanf("%lld%lld",&ma[i].c,&ma[i].w),ma[i].s=ma[i].c+ma[i].w; sort(ma+1,ma+n+1,cmp); q.push(ma[1]); W+=ma[1].w; ans=1; for(ll i=2;i<=n;i++) { if(ma[i].c<W) { hh v=q.top(); if(v.w>ma[i].w) { q.pop(); W-=v.w; W+=ma[i].w; q.push(ma[i]); } else continue; } else { W+=ma[i].w; ans++; q.push(ma[i]); } } cout<<ans<<endl; cout<<W;}int main(){ solve(); return 0;}
- 挂缀codevs2382
- 【ctsc2007】【挂缀】
- Codevs 挂缀
- [CTSC2007]挂缀pendant
- 【贪心】【CTSC2007】【cogs1584】挂缀
- [CTSC2007]挂缀 解题报告
- 【CTSC2007】挂缀 贪心
- COGS 1584. [CTSC2007]挂缀
- Codevs 2382 挂缀
- 1148: [CTSC2007]挂缀pendant
- 【codevs 2382】挂缀
- 【codevs 2382】挂缀
- [bzoj1148][CTSC2007]挂缀pendant
- codevs 2382 [CSTC2007] 挂缀 贪心
- 【CTSC 2007】挂缀(不是坠)
- 【BZOJ 1148】【CTSC 2008】挂缀【BZOJ 1 148】【CTSC 2008】挂缀
- 腾讯云系列二:Centos7 安装 Tomcat服务器
- Error:(xx) Error: "xxxxxxx" is not translated in "en" (English)[MissingTranslation]
- 计算几何(point&line)红书模板
- 【JDK源码分析】String的存储区与不可变性
- SQL数据库中表的增删改除四种基本操作与逻辑表达式
- 挂缀codevs2382
- eclipse中解除jdk的访问限制(以BASE64Encoder/BASE64Decoder为例)
- 设计模式---抽象工厂
- matplotlib.pyplot与cv2、Image.open 读取图片显示的差异
- PHP删除字符串最后一个字符
- IIS中多个版本php共存的方法,IIS如何快速搭建PHP网站,多个php实现共存的神器!
- MySQL性能优化的最佳20+条经验
- 基础很重要~~04.表表达式-上篇
- Java多线程学习(吐血超详细总结)