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. Luogu2040 | 打开所有的灯 (广搜+状压)

    题目背景 pmshz在玩一个益(ruo)智(zhi)的小游戏,目的是打开九盏灯所有的灯,这样的游戏难倒了pmshz... 题目描述 这个灯很奇(fan)怪(ren),点一下就会将这个灯和其周围四盏灯的 ...

  2. 【笔记】机器学习 - 李宏毅 - 2 - Regression + Demo

    Regression 回归 应用领域包括:Stock Market Forecast, Self-driving car, Recommondation,... Step 1: Model 对于宝可梦 ...

  3. 一键安装最新内核并开启 BBR 脚本

    最近,Google 开源了其 TCP BBR 拥塞控制算法,并提交到了 Linux 内核,从 4.9 开始,Linux 内核已经用上了该算法.根据以往的传统,Google 总是先在自家的生产环境上线运 ...

  4. 42.通过原生SQL语句进行操纵mysql数据库

    views.py文件中: from django.shortcuts import render # 导入connection模块 from django.db import connection d ...

  5. shell awk学习3

    需求: 某文件aa的内容如下: a/p1/p2b/pp1c/ppp1/ppp3d/p1/p2/p3e/p1/p2/p3/p4 期望输出结果: a /p1 /p2 b /pp1 c /ppp1 /ppp ...

  6. LeetCode-21 有序链表的合并

    问题描述: 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4输出:1->1-& ...

  7. PAT (Basic Level) Practice (中文)1087 有多少不同的值 (20 分) (set)

    当自然数 n 依次取 1.2.3.…….N 时,算式 ⌊ 有多少个不同的值?(注:⌊ 为取整函数,表示不超过 x 的最大自然数,即 x 的整数部分.) 输入格式: 输入给出一个正整数 N(2). 输出 ...

  8. KMP(模板)

    算法讲解: KMP算法最浅显易懂 模板来源: 从头到尾彻底理解KMP 首先:KMP的模板为: void get_next(char *a, int *nex) { nex[] = ; , j = ; ...

  9. 刷题22. Generate Parentheses

    一.题目说明 这个题目是22. Generate Parentheses,简单来说,输入一个数字n,输出n对匹配的小括号. 简单考虑了一下,n=0,输出"";n=1,输出" ...

  10. BZOJ 2306: [Ctsc2011]幸福路径

    Description 有向图 G有n个顶点 1, 2, -, n,点i 的权值为 w(i).现在有一只蚂蚁,从 给定的起点 v0出发,沿着图 G 的边爬行.开始时,它的体力为 1.每爬过一条 边,它 ...