今天来给大家讲奶牛叠罗汉这道题

题目描述:有n头奶牛,每头奶牛有两个属性:重量w和强壮度s。现在这些奶牛要玩一个叠罗汉的游戏,即一头奶牛要站在另一头奶牛的背上。最后只有一头奶牛站在地面上,从上到下刚好有n层。这时候,奶牛的难受值为它背上的奶牛重量之和减去它自己的强壮度。难受值的最小值为0. 请问,要如何安排奶牛叠罗汉的顺序,才能使最难受的奶牛的难受值最小。

输入格式
第一行,一个正整数,表示n。 接下来有n行,每行两个整数,分别表示一头奶牛的重量和强壮度。

输出格式
一个整数,表示最难受的奶牛的最小难受值。
输入样例
5
4 3
2 5
1 9
4 8
10 10
输出样例
1

这道题是一道贪心的题目

这个问题的关键在于如何去排序然后怎么算出难受值
那么在这里我就直接给大家讲这里该如何排序至于怎么证明就只能辛苦大家自己去找了
这道题的排序方式是按照他们的力量(s)和他们的重量(w)的和来排序。
好了讲完了思路 那我就直接上代码

#include<bits/stdc++.h>
using namespace std;
#define MAXN 100005
struct node//定义结构体
{int w,s;bool operator <(const node &t)const//重载小于符号{return w+s<t.w+t.s;//按照力量和体重}
}arr[MAXN];
int n,ans,sum;
int main()
{scanf("%d",&n);for(int i=1;i<=n;++i)scanf("%d%d",&arr[i].w,&arr[i].s);//输入sort(arr+1,arr+n+1);//排序sum=arr[1].w;for(int i=2;i<=n;++i){if(sum-arr[i].s>ans)ans=sum-arr[i].s;//难受值sum+=arr[i].w;//体重的总和}printf("%d\n",ans);//输出ansreturn 0;
}

[贪心] 奶牛叠罗汉相关推荐

  1. bzoj3824[Usaco2014 Dec]Guard Mark 奶牛叠罗汉(II)

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3824 题目大意: 题解: 状压dp f[i]表示已经选了i的奶牛来叠的最大安全因子为多少. ...

  2. upc 个人训练赛第一场:叠罗汉+踢石头(贪心+优先队列)

    问题 A: 打印方阵 题目描述 下面这样的方阵很有规律,称为蛇形方阵.例如33的: 1 2 3 6 5 4 7 8 9 现在给定边长,输出相应的蛇形方阵. 输入 1个整数n,表示要输出nn的蛇形方阵, ...

  3. 叠罗汉 农场的N头奶牛喜欢玩叠罗汉游戏,就是几头奶牛1头奶牛接着1头奶牛的站成一柱子形状。不过奶牛的力量不一样,用数值Ci表示第i头奶牛它的上面最多可以站多少头奶牛,问这些奶牛最少可以站成几个柱子形状

    叠罗汉 题目描述 农场的N头奶牛喜欢玩叠罗汉游戏,就是几头奶牛1头奶牛接着1头奶牛的站成一柱子形状.不过奶牛的力量不一样,用数值Ci表示第i头奶牛它的上面最多可以站多少头奶牛,问这些奶牛最少可以站成几 ...

  4. 2019NHOI小甲第六题 叠罗汉(2.5)

    农场的 N 头奶牛喜欢玩叠罗汉游戏,就是几头奶牛 1 头奶牛接着 1 头奶牛的站成一柱子形状.不过奶牛的力量不一样,用数值 Ci 表示第 i 头奶牛它的上面最多可以站多少头奶牛,问这些奶牛最少可以站成 ...

  5. 2019NHOI小甲解题思路

    第一题 打印方阵 题目描述 下面这样的方阵很有规律,称为蛇形方阵.例如 3*3 的: 1 2 3 6 5 4 7 8 9 现在给定边长,输出相应的蛇形方阵. 输入: 1 个整数 n,表示要输出 n*n ...

  6. AcWing 125. 耍杂技的牛

    题意 奶牛叠罗汉, 这 N 头奶牛中的每一头都有着自己的重量 Wi 以及自己的强壮程度Si 写一个程序确定奶牛排序, 要使得它们的风险值中的最大值尽可能小 第 i 头奶牛的危险系数 = 当前上面所有奶 ...

  7. linux vim 命令无效,【工匠大道】一些Vim(Linux)不常见但很逼格的命令(不断更新中)...

    分享提纲: 普通的vim的移动,编辑等命令就不再赘述.这里主要是记录一些不常见但是很逼格的命令,使你瞬间感到精神为之一振的命令 1. :Tlist 1)该命令是列出当前文件中的类名,变量名和函数名,移 ...

  8. P1843 奶牛晒衣服(贪心)

    P1843 奶牛晒衣服 直接贪心- #include<iostream> #include<stdio.h> #include<string.h> #include ...

  9. POJ3614奶牛晒阳光DINIC或者贪心

    题意:       n个区间,m种点,每种点有ci个,如果一个点的范围在一个区间上,那么就可以消耗掉一个区间,问最多可以消耗多少个区间,就是这n个区间中,有多少个可能被抵消掉. 思路:       方 ...

最新文章

  1. matlab 全局变量
  2. 团队博客(第四周)-“名字好难想”
  3. LeetCode Maximum Depth of Binary Tree
  4. 第3周实践项目1 顺序表的基本运算
  5. Java黑皮书课后题第5章:5.11(找出能被5或6整除的数,但不能同时整除)编写程序,显示从100到1000之间能被5或6整除但不能同时整除的数,每行显示10个。数字之间用一个空格字符隔开
  6. docker容器的基本操作
  7. 上海建桥学院计算机专业,上海建桥学院全国排名 特色专业多与计算机有关
  8. Java实训项目9:GUI学生信息管理系统 - 实现步骤 - 创建数据访问接口
  9. windows安装安卓开发环境Eclipse+SDK+ADT
  10. vagrant 的安装与使用
  11. css两列等高,实现一个两列等高布局,讲讲思路
  12. Saber2016仿真软件安装详细步骤及hostID全为0的可能原因
  13. openwrt反攻局域网arp攻击shell脚本
  14. 计算机协会游戏方案,计算机协会社团各月工作总结及工作计划
  15. 瑞思拜 我儿豁 SpringMVC基础 兄弟们冲冲冲
  16. 快速处理小米手机(包括MI9和K20等)挂木第后还无法登录谷歌账户的问题和google服务器通信时出现问题的解决方案!
  17. filter hid_HID调试工具
  18. 系统解剖学整理2.0.0(考前终极更新!!!)
  19. Oracle中coalesce函数的用法
  20. 有Go语言实战培训班吗?go语言开发环境搭建

热门文章

  1. 错误Invalid bound statement(not found):xxx问题解决办法
  2. 中国科学院大学2016年硕转博考试试题
  3. 大数据平台核心技术 学堂在线 雨课堂 第七讲作业答案 人文交流月
  4. 全球网络设备供应排名 华为公司稳坐第一名
  5. AttributeError: module ‘win32com.gen_py.00062FFF-0000-0000-C000-000000000046x0x9x6‘ has no attribute
  6. 北京市朝阳医院药品销售数据分析
  7. 目标追踪与定位学习笔记10-SiamMOT论文阅读
  8. 172.16.82.0/25的含义,IP段,掩码
  9. 制作一个小工具:自动生成“将特定枚举值转换成字符串的C++函数”的代码
  10. 宁波大学考博c语言真题,2015年宁波大学考博初试真题之3812光通信理论与技术A_2015年考博真题...