BZOJ4619 [Wf2016]Swap Space
来源:互联网 发布:动态bgp网络 编辑:程序博客网 时间:2024/05/25 05:37
把所有硬盘按照格完了之后是容量变大还是变小分成两类,先做变大的,后做变小的,变大的按原容量升序排序,变小的按新容量降序排序
证明感性理解一下就好……
UPD:证明见 BZOJ3709 [PA2014]Bohater
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<ctime>#include<cmath>#include<algorithm>#include<iomanip>#include<vector>#include<map>#include<set>#include<bitset>#include<queue>#include<stack>using namespace std;#define MAXN 1000010#define MAXM 1010#define INF 1000000000#define MOD 1000000007#define eps 1e-8#define ll long longstruct db{int x;int y;};db a[MAXN],b[MAXN];int n,tot1,tot2;ll ans,rem;bool cmp1(db x,db y){return x.x<y.x;}bool cmp2(db x,db y){return x.y>y.y;}void cal(int x,int y){rem-=x;if(rem<0){ans-=rem;rem=0;}rem+=y;}int main(){int i,x,y;scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d%d",&x,&y);if(x<y){a[++tot1].x=x;a[tot1].y=y;}else{b[++tot2].x=x;b[tot2].y=y;}}sort(a+1,a+tot1+1,cmp1);sort(b+1,b+tot2+1,cmp2);for(i=1;i<=tot1;i++){cal(a[i].x,a[i].y);}for(i=1;i<=tot2;i++){cal(b[i].x,b[i].y);}printf("%lld\n",ans);return 0;}/*1011 8298 1278 5315 1041 281 5853 4230 4125 3920 54*/
0 0
- BZOJ4619 [Wf2016]Swap Space
- 4619: [Wf2016]Swap Space
- 【BZOJ】4619 [Wf2016] Swap Space
- swap space
- SWAP space
- Swap Space
- swap space
- About swap space
- Linux 增加SWAP SPACE
- killed or swap space
- trying to change swap space
- All about Linux swap space
- Linux swap space mini-HOWTO
- 【转】如何增加swap space
- Linux-交换空间(swap space)
- Linux's swap space partition(交换分区)
- Configure more swap space on the system
- page cache ,buffer cache,swap space
- Android-butterknife 简单使用
- SpringMVC-intercepter(拦截器)配置
- android 初入坑xmpp即时通讯(一)
- JDBC详解
- 基于qualcomm的平台触摸屏驱动编写过程
- BZOJ4619 [Wf2016]Swap Space
- Android开发实践:使用Service还是Thread
- 我的博客开通了
- 阻止事件冒泡
- 两个矩阵之间的算法
- ReactiveCocoa 的坑 tabelViewCell 重用时移除信号
- ios 调用各种支付(Swift)
- 【机器学习】【神经网络与深度学习】不均匀正负样本分布下的机器学习 《讨论集》
- 从头开始——单例模式