zoukankan      html  css  js  c++  java
  • 【BZOJ4619/3709】[Wf2016]Swap Space/[PA2014]Bohater 贪心

    【BZOJ4619】[Wf2016]Swap Space

    Description

    你有许多电脑,它们的硬盘用不同的文件系统储存数据。你想要通过格式化来统一文件系统。格式化硬盘可能使它的容量发生变化。为了格式化,你需要买额外的硬盘。当然,你想要买容量最小的额外储存设备以便省钱。你可以按任意顺序格式化硬盘。格式化之前,你要把该硬盘上所有数据移到一个或更多的其他硬盘上(可以分割数据)。格式化后,该硬盘可以立刻开始使用。你没有必要把数据放到它原来所在的硬盘上。数据也可以被放到你额外买的硬盘上。举个例子,假设你有4个硬盘A、B、C、D,容量分别为6、1、3、3(GB)。新的文件系统下,它们的容量变
    为6、7、5、5(GB)。如果你只买1GB额外空间,你可以把B硬盘的数据放过去然后格式化硬盘B。现在你的B硬盘有7GB容量了,那么你就可以把A的数据放过去然后格式化A,最后把C、D的数据放到A上,再格式化C和D。

    Input

    第一行一个数n(1≤n≤1,000,000),表示你的硬盘数。接下来n行,每行两个数a和b,分别表示该硬盘的原容量和新文件系统下的容量。所有容量都以GB为单位,且1≤a,b≤1,000,000,000。

    Output

    输出如果要格式化所有硬盘,你最少需要购买多少额外空间(GB)。

    Sample Input

    10
    11 82
    98 12
    78 53
    15 10
    41 2
    81 58
    53 42
    30 41
    25 39
    20 54

    Sample Output

    61

    题解:一开始想的贪心策略错了,直接说正解。先选a<b的,后选a>b的。对于a<b的,先选a小的;对于a>b的,先选b小的。这个贪心策略可以直观理解,但是理性证明还是理解不上去啊。

    注意3709是血为0就死。

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    typedef long long ll;
    int n;
    ll sum,ans;
    const int maxn=1000010;
    struct node
    {
    	ll a,b;
    }p[maxn];
    inline int rd()
    {
    	int ret=0,f=1;	char gc=getchar();
    	while(gc<'0'||gc>'9')	{if(gc=='-')f=-f;	gc=getchar();}
    	while(gc>='0'&&gc<='9')	ret=ret*10+gc-'0',gc=getchar();
    	return ret*f;
    }
    bool cmp(node a,node b)
    {
    	if((a.a<=a.b)!=(b.a<=b.b))	return (a.a<=a.b)>(b.a<=b.b);
    	if(a.a<=a.b)	return a.a<b.a;
    	else	return a.b>b.b;
    }
    int main()
    {
    	n=rd();
    	int i;
    	for(i=1;i<=n;i++)	p[i].a=rd(),p[i].b=rd();
    	sort(p+1,p+n+1,cmp);
    	for(i=1;i<=n;i++)
    	{
    		ans=min(ans,sum-p[i].a);
    		sum+=p[i].b-p[i].a;
    	}
    	printf("%lld",-ans);
    	return 0;
    }//4 6 6 1 7 3 5 3 5
  • 相关阅读:
    SVN服务器搭建和配置使用详解
    Oracle命令大全
    mysql史上最全的学习资料
    jquery性能优化的38个建议
    vijosP1037搭建双塔
    vijosP1159 岳麓山上打水
    vijosP1038 添加括号
    BZOJP1003 [ZJOI2006]物流运输trans
    vijosP1006 晴天小猪历险记之Hill
    洛谷1043 数字游戏
  • 原文地址:https://www.cnblogs.com/CQzhangyu/p/7391522.html
Copyright © 2011-2022 走看看