SP27102 【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】的更多相关文章

  1. 【BZOJ4619/3709】[Wf2016]Swap Space/[PA2014]Bohater 贪心

    [BZOJ4619][Wf2016]Swap Space Description 你有许多电脑,它们的硬盘用不同的文件系统储存数据.你想要通过格式化来统一文件系统.格式化硬盘可能使它的容量发生变化.为 ...

  2. 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 ...

  3. 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, ...

  4. zabbix Lack of free swap space

    Zabbix初始设计是大型公司用于监控服务器集群的,但日常中也用于监控VPS或云主机.后者情况下Zabbix的很多配置和属性就没有经过优化,取决于监控的对象和用途,经常需要对一些Zabbix配置进行调 ...

  5. 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 ...

  6. Linux交换空间(swap space)

    每次安装Linux的时候,都会要求配置交换分区,那么这个分区是干嘛的呢?不设置这个分区有什么后果?如果一定要设置,设置多大比较合适?本篇将试图回答这些问题并尽量覆盖所有swap相关的知识. 下面的所有 ...

  7. zabbix server监控报主机 Lack of free swap space

    zabbix server监控报主机 Lack of free swap space,因为交换空间不足引起.该主机内存为3G,正常交换空间大小为物理内存2倍左右. #查看已有内存及交换空间 free ...

  8. 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 ...

  9. 运维基础——Zabbix:Lack of free swap space on Zabbix server

    问题 使用Zabbix监控一些云主机时,可能遇到: Lack of free swap space on Zabbix server 使用命令: free -m 看到: Swap 的total,use ...

随机推荐

  1. Windows配置winpcap

    参考: https://blog.csdn.net/qq_29350467/article/details/46663953?depth_1-utm_source=distribute.pc_rele ...

  2. Java各种类

    1.Object类 equals方法 2.Date类 构造方法 成员方法 DateFormat类 Calendar类 3.System类 StringBuilder原理 构造方法 toString方法 ...

  3. MySQL学习——备份和还原

    MySQL学习——备份和还原 摘要:本文主要学习了如何备份和还原数据库. 部分内容来自以下博客: https://www.cnblogs.com/chenmh/p/5300370.html 常用命令 ...

  4. 洛谷【P1595 信封问题】 题解

    题目链接 https://www.luogu.org/problem/P1595 题目描述 某人写了n封信和n个信封,如果所有的信都装错了信封.求所有信都装错信封共有多少种不同情况. 输入格式 一个信 ...

  5. 优先队列-UVA10603

    #include<cstdio> #include<cstring> #include<queue> using namespace std; typedef st ...

  6. JAVA中定义不同进制整数

    1.八进制整数以0开头 int b = 033;//表示十进制数27,3 × 81 + 3 × 80 = 3 × 8 + 3 × 1 = 24 + 3 = 27 2.十六进制整数以0x或者0X开头 i ...

  7. 【剑指Offer】24、二叉树中和为某一值的路径

    题目描述 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径.(注意: 在返回值的list中,数组长度大 ...

  8. 与第三方系统对接,生成Cloud出入库单据

    案例: Cloud的采购订单同步到第三方系统,第三方系统入库后同步生成Cloud采购入库单. 解决方案:调用采购订单的下推API,先生成保存状态的采购入库单(采购入库单中的仓库是必填项,可以在采购订单 ...

  9. GaussDB T 单机模式手工建库

    目录 你需要知道的 创建文件夹 编辑参数文件 将数据库启动到 NOMOUNT 状态 连接实例查询状态 创建数据库PROD1 如何连接原来 GAUSS 数据库 相关文章 GaussDB T 单机搭建 G ...

  10. python3练习100题——040

    原题链接:http://www.runoob.com/python/python-exercise-example40.html 题目:将一个数组逆序输出. a=[1,2,3,4,5] print a ...