POJ_3045_Cow_Acrobats_(贪心)
描述
http://poj.org/problem?id=3045
n头牛,每头牛都有重量w[i]和力量s[i].把这n头牛落起来,每头牛会有一个危险值,危险值是它上面所有牛的重量和减去它的力量.求危险值最大的牛的危险值的最小值.
| Time Limit: 1000MS | Memory Limit: 65536K | |
| Total Submissions: 4102 | Accepted: 1569 |
Description
The cows aren't terribly creative and have only come up with one
acrobatic stunt: standing on top of each other to form a vertical stack
of some height. The cows are trying to figure out the order in which
they should arrange themselves ithin this stack.
Each of the N cows has an associated weight (1 <= W_i <=
10,000) and strength (1 <= S_i <= 1,000,000,000). The risk of a
cow collapsing is equal to the combined weight of all cows on top of her
(not including her own weight, of course) minus her strength (so that a
stronger cow has a lower risk). Your task is to determine an ordering
of the cows that minimizes the greatest risk of collapse for any of the
cows.
Input
* Lines 2..N+1: Line i+1 describes cow i with two space-separated integers, W_i and S_i.
Output
Sample Input
3
10 3
2 5
3 3
Sample Output
2
Hint
Put the cow with weight 10 on the bottom. She will carry the other
two cows, so the risk of her collapsing is 2+3-3=2. The other cows have
lower risk of collapsing.
Source
分析
贪心.
易证:w+s越大应在越下面(又重,又有力气,当然放在下面...).
所以排序,扫一遍即可.
注意:
1.ans的初始值应为-INF而非0,因为很可能大家的力气都很大,但都很轻!
#include<cstdio>
#include<algorithm>
using std :: sort;
using std :: max; const int maxn=,INF=0x7fffffff;
int n; struct point
{
int w,s,sum;
}c[maxn]; bool comp(point x,point y) { return x.sum<y.sum; } void solve()
{
sort(c+,c+n+,comp);
int ans=-INF,sum=;
for(int i=;i<=n;i++)
{
ans=max(ans,sum-c[i].s);
sum+=c[i].w;
}
printf("%d\n",ans);
} void init()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%d%d",&c[i].w,&c[i].s);
c[i].sum=c[i].w+c[i].s;
}
} int main()
{
freopen("cow.in","r",stdin);
freopen("cow.out","w",stdout);
init();
solve();
fclose(stdin);
fclose(stdout);
return ;
}
POJ_3045_Cow_Acrobats_(贪心)的更多相关文章
- BZOJ 1692: [Usaco2007 Dec]队列变换 [后缀数组 贪心]
1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1383 Solved: 582[Submit][St ...
- HDOJ 1051. Wooden Sticks 贪心 结构体排序
Wooden Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- BZOJ 1691: [Usaco2007 Dec]挑剔的美食家 [treap 贪心]
1691: [Usaco2007 Dec]挑剔的美食家 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 786 Solved: 391[Submit][S ...
- 【Codeforces 738D】Sea Battle(贪心)
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...
- 【BZOJ-4245】OR-XOR 按位贪心
4245: [ONTAK2015]OR-XOR Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 486 Solved: 266[Submit][Sta ...
- code vs 1098 均分纸牌(贪心)
1098 均分纸牌 2002年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 有 N 堆纸牌 ...
- 【BZOJ1623】 [Usaco2008 Open]Cow Cars 奶牛飞车 贪心
SB贪心,一开始还想着用二分,看了眼黄学长的blog,发现自己SB了... 最小道路=已选取的奶牛/道路总数. #include <iostream> #include <cstdi ...
- 【贪心】HDU 1257
HDU 1257 最少拦截系统 题意:中文题不解释. 思路:网上有说贪心有说DP,想法就是开一个数组存每个拦截系统当前最高能拦截的导弹高度.输入每个导弹高度的时候就开始处理,遍历每一个拦截系统,一旦最 ...
随机推荐
- LINQ里的Distinct()
IQueryable 继承自IEnumerable 先举例: #region linq to object List<People> peopleList = new List<Pe ...
- 球面墨卡托(Spherical Mercator)
地理信息描述空间位置相关的信息,在空间位置的表达中,需要基于空间参照系来保证数据精度以及不同数据源之间的相互叠加/空间分析操作.自Google Maps与2005年发布以来,电子地图服务与普通民众的日 ...
- Java——类比较器
1.Product类 public class Product { private int pid; private String name; private double price; public ...
- O-C相关05:方法的封装.
前言:在 OC 中进行封装, 就是实现设置实例变量和获取实例变量数据的方法, 常常称为 setter 方法和 getter 方法. 或称为 get set 读写器. 1,setter 方法 sette ...
- OC与Swift的区别一(文件结构)
1.文件后缀名 oc的文件后缀名为:头文件.h 主体文件.m swift文件后缀名为:.swift 2. 代码分隔符 oc中使用分号;作为代码分隔符 swift中无需使用代码分隔符,以行作为代码分隔 ...
- java新手笔记21 接口
1.接口 package com.yfs.javase; public interface IDemo1 {//interface 接口 public /*abstract*/ void method ...
- 07_MyBatis原始的Dao编写方法
[UserDao.java ] package com.Higgin.Mybatis.dao; import com.Higgin.Mybatis.po.User; public interface ...
- ubuntu ssh安装
参考 http://www.linuxidc.com/Linux/2010-02/24349.htm 文章很不错!! ssh 登录名@ip地址 , 如果提示验证key can't be esta ...
- samba和squid 安装
一. samba配置1. 什么是sambaSamba服务类似于windows上的共享功能,可以实现在Linux上共享文件,windows上访问,当然在Linux上也可以访问到.是一种在局域网上共享文件 ...
- ConcurrentHashMap中的2的n次方幂上舍入方法
最近看JDK中的concurrentHashMap类的源码,其中有那么一个函数: /** * Returns a power of two table size for the given desir ...