【POJ - 3045】Cow Acrobats (贪心)
Cow Acrobats
Descriptions
农夫的N只牛(1<=n<=50,000)决定练习特技表演。 特技表演如下:站在对方的头顶上,形成一个垂直的高度。 每头牛都有重量(1 <= W_i <= 10,000)和力量(1 <= S_i <= 1,000,000,000)。奶牛崩溃的风险等同于她身上所有的奶牛的重量(当然不包括她自己)减去她的力量。你的任务是确定奶牛的顺序,从而使得所有牛的风险中最大的一个尽量小。Input第1行:一个整数N 第2 . .N+ 1行: 两个空格分隔的整数重量wi和力量si来描述奶牛i。Output一个整数,在所有牛的风险中最大的一个
Sample Input
3
10 3
2 5
3 3
Sample Output
2
Hint
样例解释: 把重量为10的牛放在底部。她将携带另外两只牛,所以她的崩溃的风险是2 +3-3= 2。其他的奶牛有比她低的崩溃风险。
题目链接
https://vjudge.net/problem/POJ-3045
简单想了一下用贪心w+s越大应在越下面(又重,又有力气,当然放在下面)
所以排序,扫一遍即可
AC代码
#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <sstream>
#define IOS ios_base::sync_with_stdio(0); cin.tie(0);
#define Mod 1000000007
#define eps 1e-6
#define ll long long
#define INF 0x3f3f3f3f
#define MEM(x,y) memset(x,y,sizeof(x))
#define Maxn 100000+100
using namespace std;
int n;
struct node
{
int w,s,sum;
bool operator<(const node &c)const//按体重从小到大排序
{
return sum<c.sum;
}
};
node a[Maxn];
int main()
{
while(cin>>n)
{
for(int i=;i<n;i++)
{
cin>>a[i].w>>a[i].s;
a[i].sum=a[i].w+a[i].s;
}
sort(a,a+n);//排序
int ans=-INF;//注意不能是0
int sum=;//累计体重
for(int i=;i<n;i++)
{
ans=max(ans,sum-a[i].s);//求最大的崩溃值
sum+=a[i].w;//把上面的体重加一起
}
cout<<ans<<endl;
}
return ;
}
【POJ - 3045】Cow Acrobats (贪心)的更多相关文章
- POJ 3045 Cow Acrobats (贪心)
POJ 3045 Cow Acrobats 这是个贪心的题目,和网上的很多题解略有不同,我的贪心是从最下层开始,每次找到能使该层的牛的风险最小的方案, 记录风险值,上移一层,继续贪心. 最后从遍历每一 ...
- POJ - 3045 Cow Acrobats (二分,或者贪心)
一开始是往二分上去想的,如果risk是x,题目要求则可以转化为一个不等式,Si + x >= sigma Wj ,j表示安排在i号牛上面的牛的编号. 如果考虑最下面的牛那么就可以写成 Si + ...
- poj 3045 Cow Acrobats(二分搜索?)
Description Farmer John's N (1 <= N <= 50,000) cows (numbered 1..N) are planning to run away a ...
- POJ 3045 Cow Acrobats
Description Farmer John's N (1 <= N <= 50,000) cows (numbered 1..N) are planning to run away a ...
- POJ 3045 Cow Acrobats (最大化最小值)
题目链接:click here~~ [题目大意] 给你n头牛叠罗汉.每头都有自己的重量w和力量s,承受的风险数rank就是该牛上面全部牛的总重量减去该牛自身的力量,题目要求设计一个方案使得全部牛里面风 ...
- Cow Acrobats(贪心)
Cow Acrobats Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3686 Accepted: 1428 Desc ...
- [USACO2005][POJ3045]Cow Acrobats(贪心)
题目:http://poj.org/problem?id=3045 题意:每个牛都有一个wi和si,试将他们排序,每头牛的风险值等于前面所有牛的wj(j<i)之和-si,求风险值最大的牛的最小风 ...
- poj 3045 叠罗汉问题 贪心算法
题意:将n头牛叠起来,每头牛的力气 s体重 w 倒下的风险是身上的牛的体重的和减去s 求最稳的罗汉倒下去风险的最大值 思路: 将s+w最大的放在下面,从上往下看 解决问题的代码: #include& ...
- POJ3045 Cow Acrobats —— 思维证明
题目链接:http://poj.org/problem?id=3045 Cow Acrobats Time Limit: 1000MS Memory Limit: 65536K Total Sub ...
随机推荐
- 2-删除IPC$的方式
一.使用命令临时删除IPC$的方式 1.查看IPC$是否启用 命令:net share 2.删除IPC$功能 命令:net share ipc$ /delete 注:使用命令删除后,重启服务器后,IP ...
- nginx限流&健康检查
Nginx原生限流模块: ngx_http_limit_conn_module模块 根据前端请求域名或ip生成一个key,对于每个key对应的网络连接数进行限制. 配置如下: http模块 ser ...
- Codeforces Round #453 (Div. 1) 901C C. Bipartite Segments
题 http://codeforces.com/contest/901/problem/C codeforces 901C 解 首先因为图中没有偶数长度的环,所以: 1.图中的环长度全是奇数,也就是说 ...
- switch语句分析
1.关于switch语句 如果if语句中表达式是判断是否等于一个常量时,可以用switch语句来代替 if(表达式 == 常量1) { ...
- clone([Even[,deepEven]])克隆匹配的DOM元素并且选中这些克隆的副本。
clone([Even[,deepEven]]) 概述 克隆匹配的DOM元素并且选中这些克隆的副本. 在想把DOM文档中元素的副本添加到其他位置时这个函数非常有用. 参数 EventsBooleanV ...
- PHP mysqli_insert_id() 函数
定义和用法 mysqli_insert_id() 函数返回最后一个查询中自动生成的 ID(通过 AUTO_INCREMENT 生成). 语法 mysqli_insert_id(connection); ...
- How to Set Up Chinese Characters on Windows 7
How to Change the Display Language of non-Unicode Programs in Windows http://www.7tutorials.com/chan ...
- @WebServlet @WebListener @WebListener
- JavaScript闭包应用场合——控制前端接口轮训
很多人都知道JavaScript的闭包,也知道大致是一个什么意思,但是对于闭包的应用场合不是很清楚 最近在改造项目的过程之中修改前端接口轮训方式的时候用到了闭包驱动setTimeout来实现一个类似定 ...
- Kernel Knights (Gym - 101480K)
题目链接 #include <bits/stdc++.h> using namespace std; typedef long long ll; int a[200005]; //存放原始 ...