#贪心#洛谷 6927 [ICPC2016 WF]Swap Space
分析
可以发现能将硬盘容量变大的优先,这种硬盘就是以格式化前的大小升序排序。
然后如果硬盘容量变小,那就是先填格式化后较大的硬盘(因为装完可以提供较大的空间)
代码
#include <cstdio>
#include <cctype>
#include <algorithm>
using namespace std;
const int N=1000011;
typedef long long lll;
lll rest,ans; int n,tot0,tot1;
struct rec{int x,y;}a[N],b[N];
int iut(){
int ans=0; char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=ans*10+c-48,c=getchar();
return ans;
}
bool cmp0(rec x,rec y){return x.x<y.x;}
bool cmp1(rec x,rec y){return x.x>y.x;}
int main(){
n=iut();
for (int i=1;i<=n;++i){
int x=iut(),y=iut();
if (x<y) a[++tot0]=(rec){x,y-x};
else b[++tot1]=(rec){y,x};
}
sort(a+1,a+1+tot0,cmp0);
sort(b+1,b+1+tot1,cmp1);
for (int i=1;i<=tot0;++i){
if (rest<a[i].x) ans+=a[i].x-rest,rest=a[i].x;
rest+=a[i].y;
}
for (int i=1;i<=tot1;++i)
if (rest<b[i].y)
ans+=b[i].y-rest,rest=b[i].x;
else rest-=b[i].y-b[i].x;
return !printf("%lld",ans);
}
分类:
只是前置-模拟、搜索、贪心
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】