题解 SP27102/UVA1747 【Swap Space】
双倍经验:UVA1747 Swap Space
用(a,b)表示每个硬盘的原容量和新文件系统下的容量。分两种情况考虑:a≤b和a>b
第一类a≤b格式化后能增加我们的剩余容量,所以肯定要优先格式化,按照a从小到大排序,所需空间较少,这样一来可以用较少的空间换取更多的空间;
第二类a>b会减小容量。考虑时间倒流。从后往前倒着看,容量增加,此时看作(b,a),由第一类可知容量增加时我们应当以第一个数b从小到大排序。但由于我们是倒着看,所以实际上先后顺序为b从大到小
例如原容量为7,对于(6,2),容量-4,7->3;如果从后往前反着看则是容量3->7,a,b为(2,6)。
#include<cstdio>
#include<algorithm>
using namespace std;
#define ll long long
struct node {
int a,b,c;
} m[1000010],mm[1000010];
inline bool cmp1(node a,node b) {
return a.a<b.a;
}
inline bool cmp2(node a,node b) {
return a.b>b.b;
}
int main() {
ll n,cnt1,cnt2,ans,s;
while(scanf("%lld",&n)!=EOF) {
cnt1=cnt2=ans=s=0;
for (ll x,y; n; n--) {
scanf("%lld%lld",&x,&y);
if (x<=y) //分成两类存储排序
m[++cnt1]=(node) {
x,y,y-x
};
else
mm[++cnt2]=(node) {
x,y,y-x
};
}
sort(m+1,m+cnt1+1,cmp1);
sort(mm+1,mm+cnt2+1,cmp2);
// ans存储所需的额外容量(当前的硬盘文件放满s剩余容量后还需要的额外容量,这里用负数的方式统计最多需要多少额外容量),s存储通过格式化硬盘所获得的容量
for (int i=1; i<=cnt1; i++)
ans=min(ans,s-m[i].a),s+=m[i].c;
for (int i=1; i<=cnt2; i++)
ans=min(ans,s-mm[i].a),s+=mm[i].c;
printf("%lld\n",ans>0? ans:-ans);
}
}
题解 SP27102/UVA1747 【Swap Space】的更多相关文章
- 【BZOJ4619/3709】[Wf2016]Swap Space/[PA2014]Bohater 贪心
[BZOJ4619][Wf2016]Swap Space Description 你有许多电脑,它们的硬盘用不同的文件系统储存数据.你想要通过格式化来统一文件系统.格式化硬盘可能使它的容量发生变化.为 ...
- Zabbix报告无交换内存主机 Lack of free swap space on xxxxx
[root@xx ~]# free -m total used free shared buffers cached Mem: 3832 3488 343 0 267 2389 -/+ buffers ...
- UNIX / Linux: 2 Ways to Add Swap Space Using dd, mkswap and swapon
UNIX / Linux: 2 Ways to Add Swap Space Using dd, mkswap and swapon by RAMESH NATARAJAN on AUGUST 18, ...
- zabbix Lack of free swap space
Zabbix初始设计是大型公司用于监控服务器集群的,但日常中也用于监控VPS或云主机.后者情况下Zabbix的很多配置和属性就没有经过优化,取决于监控的对象和用途,经常需要对一些Zabbix配置进行调 ...
- centos 安装oracle 报Checking swap space: 0 MB available, 150 MB required. Failed <<<<
1 系统环境 centos 6.5 oracle 11g 内存 16G 硬盘 ssd 250G 2 运行安装命令: [oracle@localhost database]$ ./runInstalle ...
- Linux交换空间(swap space)
每次安装Linux的时候,都会要求配置交换分区,那么这个分区是干嘛的呢?不设置这个分区有什么后果?如果一定要设置,设置多大比较合适?本篇将试图回答这些问题并尽量覆盖所有swap相关的知识. 下面的所有 ...
- zabbix server监控报主机 Lack of free swap space
zabbix server监控报主机 Lack of free swap space,因为交换空间不足引起.该主机内存为3G,正常交换空间大小为物理内存2倍左右. #查看已有内存及交换空间 free ...
- How To Add Swap Space on Ubuntu 16.04
Introduction One of the easiest way of increasing the responsiveness of your server and guarding aga ...
- 运维基础——Zabbix:Lack of free swap space on Zabbix server
问题 使用Zabbix监控一些云主机时,可能遇到: Lack of free swap space on Zabbix server 使用命令: free -m 看到: Swap 的total,use ...
随机推荐
- SpringBoot导出excel数据报错Could not find acceptable representation
转自:https://blog.csdn.net/mate_ge/article/details/93518286?utm_source=distribute.pc_relevant.none-tas ...
- 用浏览器的油猴子脚本调用IDM下载百度云盘中的资料
用浏览器的油猴子脚本调用IDM下载百度云盘中的资料(只能支持单个文件下载) 第一步需要现在浏览器中安装油猴子插件Tampermonkey.crx 安装油猴子插件插件主页:https://tamperm ...
- python之三目运算符的替代品?
# 不知曾几何时,你是否也觉得Python的三目运算写起来很麻烦呢?(没有过) # 比如: a, b = 3, 4 c = a if a > b else b d = a if a < b ...
- mui退出登录
html部分: <button id='promptBtn' type="button" class="mui-btn mui-btn-block mui-btn- ...
- Dell 工作站M4800 安装macOs Mojave
前言 最近,入手了一台二手Dell工作站M4800,价格为3600,配置如下 个人感觉还是很好用的,配置够用,关键是用料真的足!虽然是16年的机器,但是做工吊打一众游戏本. 然后,重点来了,我安装上了 ...
- 牛客寒假6-F十字阵列
链接:https://ac.nowcoder.com/acm/problem/201986来源:牛客网 题目描述 小 Q 新学会了一种魔法,可以对一个 N行M列 的网格上的敌人造成伤害 第 i 次使用 ...
- 关于全球唯一标识GUID的生成
1.c#生成GUID的几种方式 (1)生成标准的标志符 (36位标准) var strguid = Guid.NewGuid().ToString(); 结果:B2A5AB40-EE29-4791-9 ...
- 0级搭建类001-RedHat Enterprise Linux 8 安装(RHEL 8) 公开
项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...
- 深入浅出Mybatis系列二-配置简介(mybatis源码篇)
注:本文转载自南轲梦 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 上篇文章<深入浅出Mybatis系列(一)---Mybatis入门>, ...
- 自定义Redux
实现mini版redux 1. 理解redux模块 1). redux模块整体是一个对象模块 2). 内部包含几个函数 createStore(reducers) // reducers: funct ...