时间限制:C / C ++ 1秒,其他语言2秒
空间限制:C / C ++ 32768K,其他语言65536K
64位IO格式:%lld
描述
农夫约翰去砍伐木头,照例让N(2≤N≤100,000)头牛吃草。当他返回时,他惊骇地发现,那群母牛在他的花园里吃着他美丽的花朵。为了最大程度地减少后续损失,FJ决定立即采取行动,将每头母牛运回自己的谷仓。
每头奶牛i的位置距离自己的牛舍都只有Ti分钟(1≤Ti≤2,000,000)。此外,在等待运输时,她每分钟会破坏Di(1≤Di≤100)花。无论他多么努力,FJ一次只能将一头母牛运回她的谷仓。将奶牛i移到谷仓需要2×Ti分钟(Ti到达那里,Ti返回)。FJ从花丛开始,将母牛运到谷仓,然后走回花朵,无需花费额外的时间即可到达需要运输的下一头母牛。
编写一个程序来确定FJ拣起奶牛的顺序,以使被破坏的花朵总数最小化。
输入描述:
第1行:单个整数N
行2…N + 1:每行包含两个以空格分隔的整数Ti和Di,它们描述了单头母牛的特征
输出描述:
第1行:单个整数,它是销毁花朵的最小数量

输入

6
3 1
2 5
2 3
3 2
4 1
1 6

输出

86

思路:算法核心:贪心
经典贪心题
假设最优的选择顺序为 …AB…,那么交换 AB 的顺序这一操作不会对其他牛产生任何影响.
由于我们已经假设最优选择顺序为 …AB…,所以 …BA… 的结果不应该比之前的好. 即 AB 应该不比 BA 差.
AB时,A吃花量Td[A],B吃花量(T+t[A])d[B]
BA时,A吃花量(T+t[B])d[A],B吃花量Td[B]
由于AB<=BA,联立推出A.tB.d<B.tA.d,找到最优顺序,按照此顺序排序即可。
注意有俩个小坑,数据类型要Long long!!!还有第一头牛不吃花!!!

//牛吃fafa
//贪心,按照t/d排序
#include <bits/stdc++.h>
using namespace std;typedef long long ll;
struct cow
{ll ti,d;ll  flo,sum_t;//flo是数到每头牛破坏花的总和,sum_t是从第一头到当前牛所耗的全部时间
}t[100005];
bool cmp(cow a,cow b)
{return a.ti*b.d<b.ti*a.d;//排序
}
int main()
{int i,n;cin>>n;for(i=1;i<=n;i++)  cin>>t[i].ti>>t[i].d;sort(t+1,t+n+1,cmp);t[1].flo=0;//注意雷区,第一头牛没破坏花 t[1].sum_t=2*t[1].ti; for(i=2;i<=n;i++){t[i].sum_t=t[i-1].sum_t+2*t[i].ti;//更新所用时间 t[i].flo=t[i-1].flo+t[i].d*t[i-1].sum_t;//更新当前牛破坏花的和 }cout<<t[n].flo<<endl;//输出
}

Protecting the flowers相关推荐

  1. [BZOJ] 1634: [Usaco2007 Jan]Protecting the Flowers 护花

    1634: [Usaco2007 Jan]Protecting the Flowers 护花 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 827  S ...

  2. USACO 保护花朵 Protecting the Flowers, 2007 Jan

    Description 约翰留下了 N 只奶牛呆在家里,自顾自地去干活了,这是非常失策的.他还在的时候,奶牛像 往常一样悠闲地在牧场里吃草.可是当他回来的时候,他看到了一幕惨剧:他的奶牛跑进了他的花园 ...

  3. POJ 3262 Protecting the Flowers 贪心(性价比)

    Protecting the Flowers Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7812   Accepted: ...

  4. POJ3262 Protecting the Flowers【贪心】

    Protecting the Flowers Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 8663   Accepted: ...

  5. bzoj 1634: [Usaco2007 Jan]Protecting the Flowers 护花(贪心排序)

    1634: [Usaco2007 Jan]Protecting the Flowers 护花 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 824  S ...

  6. [USACO 2007 Jan S]Protecting the Flowers

    题目: [USACO 2007 Jan S]Protecting the Flowers ,哈哈,我们今天来看一道简单的贪心算法题嘛,这是选自USACO上的一道题,好了,我们一起来看看题意吧: 题目描 ...

  7. 牛客网 【每日一题】5月28日题目精讲 Protecting the Flowers

    链接: 文章目录 题目描述 题意: 题解: 代码: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目 ...

  8. Protecting the Flowers(POJ-3262)

    Problem Description Farmer John went to cut some wood and left N (2 ≤ N ≤ 100,000) cows eating the g ...

  9. [USACO07JAN]Protecting the Flowers S

    题意:有n只奶牛正在吃花,农场主要把他们全都抓回去,给出每个奶牛得吃花速度和抓回去得时间(这里时间要乘2,来回),问约翰最少损失多少朵花. 题解:贪心 这题得贪心还是比较明显得,主要是通过分析前后两个 ...

  10. POJ_3262 Protecting the Flowers 【贪心】

    一.题面 POJ3262 二.分析 这题要往贪心上面想应该还是很容易的,但问题是要证明为什么比值关系就能满足. 可以选择几个去分析,入1-6  与 2-15  和 1-6 与2-5 和 1-6 与 2 ...

最新文章

  1. 表情的机器自动识别(有图有真相)
  2. 想学科大讯飞成为下一个业界黑马?这些项目了解一下
  3. String、StringBuffer、StringBuilder源码解析
  4. 【Java】阶段性总结练习------图书管理系统实现
  5. 面试官:听说你精通并发编程,来说说你对ThreadLocal的理解
  6. SAP ABAP程序优化-多线程并行处理
  7. kubeadm集群修改k8s证书时间到99年
  8. java存储过程与sql语句_存储过程与SQL语句怎么选择
  9. 操作系统:第一章 计算机系统概述
  10. Docker 阿里云加速和 docker-compose 国内镜像
  11. Tomcat,出现乱码问题
  12. mysql编译gcov_Mysql 编译参数详解
  13. ASP.NET AJAX Advance Tips Tricks (9) DropDownList在Firefox下的奇怪现象和解决方案——谁的BUG?...
  14. 利用curl去hack他人博客
  15. MsSQL ——模拟limit
  16. Javascript 细节散记
  17. ANSYS CFD网格划分笔记3
  18. 网络规划设计师教程第二版目录
  19. android checkboxpreference属性,Android CheckBoxPreference Default Value
  20. 利用计算机对人脸进行识别的应用领域是,计算机人脸识别技术及应用简析

热门文章

  1. 轮胎型号怎么看?韩泰轮胎为大家详细解读这些字符含义
  2. Linux操作系统中的七件超厉害的武器
  3. Vue路由传参详解(params 与 query)
  4. 第6集丨遗世独立的修道生涯
  5. 网络安全漏洞复现与分析
  6. [评论]Flash,Silverlight,Win32:2011三大垂死平台
  7. 学校没有邮箱怎么办?如何申请注册学生个人教育邮箱?
  8. 前端点击图片的某个区域进行映射
  9. 图像信息隐藏与解密(OpenCV)
  10. vue中定义组件 components(局部 / 全局)