Protecting the flowers
时间限制: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相关推荐
- [BZOJ] 1634: [Usaco2007 Jan]Protecting the Flowers 护花
1634: [Usaco2007 Jan]Protecting the Flowers 护花 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 827 S ...
- USACO 保护花朵 Protecting the Flowers, 2007 Jan
Description 约翰留下了 N 只奶牛呆在家里,自顾自地去干活了,这是非常失策的.他还在的时候,奶牛像 往常一样悠闲地在牧场里吃草.可是当他回来的时候,他看到了一幕惨剧:他的奶牛跑进了他的花园 ...
- POJ 3262 Protecting the Flowers 贪心(性价比)
Protecting the Flowers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7812 Accepted: ...
- POJ3262 Protecting the Flowers【贪心】
Protecting the Flowers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 8663 Accepted: ...
- bzoj 1634: [Usaco2007 Jan]Protecting the Flowers 护花(贪心排序)
1634: [Usaco2007 Jan]Protecting the Flowers 护花 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 824 S ...
- [USACO 2007 Jan S]Protecting the Flowers
题目: [USACO 2007 Jan S]Protecting the Flowers ,哈哈,我们今天来看一道简单的贪心算法题嘛,这是选自USACO上的一道题,好了,我们一起来看看题意吧: 题目描 ...
- 牛客网 【每日一题】5月28日题目精讲 Protecting the Flowers
链接: 文章目录 题目描述 题意: 题解: 代码: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目 ...
- 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 ...
- [USACO07JAN]Protecting the Flowers S
题意:有n只奶牛正在吃花,农场主要把他们全都抓回去,给出每个奶牛得吃花速度和抓回去得时间(这里时间要乘2,来回),问约翰最少损失多少朵花. 题解:贪心 这题得贪心还是比较明显得,主要是通过分析前后两个 ...
- POJ_3262 Protecting the Flowers 【贪心】
一.题面 POJ3262 二.分析 这题要往贪心上面想应该还是很容易的,但问题是要证明为什么比值关系就能满足. 可以选择几个去分析,入1-6 与 2-15 和 1-6 与2-5 和 1-6 与 2 ...
最新文章
- 表情的机器自动识别(有图有真相)
- 想学科大讯飞成为下一个业界黑马?这些项目了解一下
- String、StringBuffer、StringBuilder源码解析
- 【Java】阶段性总结练习------图书管理系统实现
- 面试官:听说你精通并发编程,来说说你对ThreadLocal的理解
- SAP ABAP程序优化-多线程并行处理
- kubeadm集群修改k8s证书时间到99年
- java存储过程与sql语句_存储过程与SQL语句怎么选择
- 操作系统:第一章 计算机系统概述
- Docker 阿里云加速和 docker-compose 国内镜像
- Tomcat,出现乱码问题
- mysql编译gcov_Mysql 编译参数详解
- ASP.NET AJAX Advance Tips Tricks (9) DropDownList在Firefox下的奇怪现象和解决方案——谁的BUG?...
- 利用curl去hack他人博客
- MsSQL ——模拟limit
- Javascript 细节散记
- ANSYS CFD网格划分笔记3
- 网络规划设计师教程第二版目录
- android checkboxpreference属性,Android CheckBoxPreference Default Value
- 利用计算机对人脸进行识别的应用领域是,计算机人脸识别技术及应用简析