题目链接click here~~

【题目大意】

给你n头牛叠罗汉。每头都有自己的重量w和力量s,承受的风险数rank就是该牛上面全部牛的总重量减去该牛自身的力量,题目要求设计一个方案使得全部牛里面风险最大的要最小。

【解题思路】:依照w+s贪心放置,越大的(注意是w+s之和)越在以下。不难证明:假设最优放置时。相邻两头牛属性分别为w1,s1,w2,s2,第一头牛在第二头上面,sum为第一头牛上面的牛的体重之和。那么第一头牛风险:rank1=sum-s1;第二头牛风险:rank2=sum+w1-s2;交换两头牛位置之后 rank1'=sum+w2-s1,rank2'=sum-s2,因为是最优放置,所以w2-s1>=w1-s2。即w2+s2>=w1+s1,所以和最大的一定在最以下!因此排序。推断就可以!

代码:

//#include <bits/stdc++.h>
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
const int N=1e6+10;
long long num[N];
long long n,m,k;
struct node
{
long long sum ,w,s;
} pp[N];
bool cmp(node a,node b)
{
return a.w+a.s<b.w+b.s;//坑啊! !!
}
int main()
{
//freopen("1.txt","r",stdin);
scanf("%lld",&n);
for(int i=1; i<=n; i++)
{
scanf("%lld%lld",&pp[i].w,&pp[i].s);
}
sort(pp,pp+n+1,cmp);
pp[1].sum=0;
for(int i=2; i<=n; i++)
{
pp[i].sum=pp[i-1].sum+pp[i-1].w;
}
long long maxx=-1e10;
for(int i=1; i<=n; i++)
{
maxx=max(pp[i].sum-pp[i].s,maxx);
}
printf("%lld\n",maxx);
return 0;
}

POJ 3045 Cow Acrobats (最大化最小值)的更多相关文章

  1. POJ 3045 Cow Acrobats (贪心)

    POJ 3045 Cow Acrobats 这是个贪心的题目,和网上的很多题解略有不同,我的贪心是从最下层开始,每次找到能使该层的牛的风险最小的方案, 记录风险值,上移一层,继续贪心. 最后从遍历每一 ...

  2. poj 3045 Cow Acrobats(二分搜索?)

    Description Farmer John's N (1 <= N <= 50,000) cows (numbered 1..N) are planning to run away a ...

  3. POJ 3045 Cow Acrobats

    Description Farmer John's N (1 <= N <= 50,000) cows (numbered 1..N) are planning to run away a ...

  4. POJ - 3045 Cow Acrobats (二分,或者贪心)

    一开始是往二分上去想的,如果risk是x,题目要求则可以转化为一个不等式,Si + x >= sigma Wj ,j表示安排在i号牛上面的牛的编号. 如果考虑最下面的牛那么就可以写成 Si + ...

  5. poj 3273 分期问题 最大化最小值

    题意:将N个账款分给城M个财务期,使得每个分期账款和的值最大? 思路: 每次mid为分期账款 如果分期次数小于m说明mid太大,减上限  反正 增下限 开始下限设为 最大值 上限设为和 解决问题的代码 ...

  6. poj 3258 跳房子问题 最大化最小值

    题意:奶牛跳房子,从n块石头中移除M块,使得间距最小的最大值?思路:“转换” 从N块中选择n-m块使得两两之间的间距尽可能大 c(d) 是间距最大的满足条件,即第一块 放在 xi的位置 下一块就要放在 ...

  7. POJ3045 Cow Acrobats —— 思维证明

    题目链接:http://poj.org/problem?id=3045 Cow Acrobats Time Limit: 1000MS   Memory Limit: 65536K Total Sub ...

  8. POJ 2456 3258 3273 3104 3045(二分搜索-最大化最小值)

    POJ 2456 题意 农夫约翰有N间牛舍排在一条直线上,第i号牛舍在xi的位置,其中有C头牛对牛舍不满意,因此经常相互攻击.需要将这C头牛放在离其他牛尽可能远的牛舍,也就是求最大化最近两头牛之间的距 ...

  9. 【POJ - 3045】Cow Acrobats (贪心)

    Cow Acrobats Descriptions 农夫的N只牛(1<=n<=50,000)决定练习特技表演. 特技表演如下:站在对方的头顶上,形成一个垂直的高度. 每头牛都有重量(1 & ...

随机推荐

  1. nginx假死导致的问题回顾

    背景: 网络大致拓扑型 定位到一台Nginx节点于凌晨Timewait异常,等到6K. 进程异常,ngx_http_realtime_request模块错误 错误日志: 2017/02/24 00:0 ...

  2. n阶幻方问题

    转载自:http://blog.csdn.net/fengchaokobe/article/details/7437767 目录        第一节 n阶幻方问题       第二节 由n阶幻方引发 ...

  3. Ftp的上传和下载

    百度知道的那个在“ 绑定和SSL设置”模块,选择的是允许 如果一直找不到网页的话,就是这里错了:反正就是牵扯到一堆防火墙的设置(最后我也没搞成) 选择成无就OK了:一切迎刃而解............ ...

  4. 记录一下Memcached的用法:

    首先就是先要配置Memcached,这个回头再写. https://zhidao.baidu.com/question/809745125827797732.html https://www.cnbl ...

  5. jquery中prop()方法和attr()方法

    接着上一篇笔记的疑惑,找了下prop()方法和attr()方法的区别. 原来query1.6中新加了一个方法prop(),一直没用过它,官方解释只有一句话:获取在匹配的元素集中的第一个元素的属性值. ...

  6. 自动与因特网时间服务器同步 NTP 服务器 pool.ntp.org, 120.24.166.46 端口 123

    自动与因特网时间服务器同步   NTP 服务器 pool.ntp.org 海康提供的NTP服务器   120.24.166.46     端口  123

  7. 客户端运行gpupdate /force,后提示原因是缺少到域控制器的网络连接

    问题: C:\Users\wb>gpupdate /force正在更新策略... 用户策略更新成功完成.无法成功更新计算机策略.遇到下列错误: 处理组策略失败,原因是缺少到域控制器的网络连接.这 ...

  8. java.sql.SQLException:错误 The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.

    错误 方法 添加后面的内容即可

  9. Floyd-Warshall 算法-- 最短路径(适合节点密集的图)

     由于此算法时间复杂度为O(V³).大多数情况下不如迪杰斯特拉算法的.迪杰斯特拉算法适合于节点疏散的图.  演示样例图例如以下:     Step 1 创建节点与边的最短路径结果表(直接可达关系).数 ...

  10. poi excel自己主动转换成javabean 支持引用类型属性二级转换

    近期项目须要使用excel导入功能.导入学生的时候须要指定所在班级,使用excel一次性导入! 将曾经的代码改改支持属性内引用类的转换. 測试对象为User对象,javabean结构: private ...