Problem Description

Farmer John went to cut some wood and left N (2 ≤ N ≤ 100,000) cows eating the grass, as usual. When he returned, he found to his horror that the cluster of cows was in his garden eating his beautiful flowers. Wanting to minimize the subsequent damage, FJ decided to take immediate action and transport each cow back to its own barn.

Each cow i is at a location that is Ti minutes (1 ≤ Ti ≤ 2,000,000) away from its own barn. Furthermore, while waiting for transport, she destroys Di (1 ≤ Di ≤ 100) flowers per minute. No matter how hard he tries, FJ can only transport one cow at a time back to her barn. Moving cow i to its barn requires 2 × Ti minutes (Ti to get there and Ti to return). FJ starts at the flower patch, transports the cow to its barn, and then walks back to the flowers, taking no extra time to get to the next cow that needs transport.
Write a program to determine the order in which FJ should pick up the cows so that the total number of flowers destroyed is minimized.

Input

Line 1: A single integer N 
Lines 2..N+1: Each line contains two space-separated integers, Ti and Di, that describe a single cow's characteristics

Output

Line 1: A single integer that is the minimum number of destroyed flowers

Sample Input

6

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

Sample Output

86

题意:将n头牛赶回牛圈,每头牛在被赶之前每秒破坏Di朵花,赶牛回去要花Ti×2的时间,在赶牛的过程中,牛不能破坏花,求赶完所有牛后,被破坏花的最小值。

思路:

典型贪心算法,先对牛的破坏度进行排序,然后顺序赶牛计算破坏度即可。

设两头牛 A、B,要先赶走破坏大的,留下破坏小的牛。若先赶走 A,则 B 造成 2×TA×DB 的损失;若先赶走B,则 A 造成 2×TA×DB 的损失,因此判断 TA×DB 与 TA×DB 即可。

推广到 n 头牛,则排序标准为:Ti×Dj > Tj×Di

Source Program

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<string>
#include<cstdlib>
#include<queue>
#include<vector>
#define INF 0x3f3f3f3f
#define PI acos(-1.0)
#define N 100100
#define MOD 123
#define E 1e-6
using namespace std;
struct Node
{long long x;long long y;
}a[N];int cmp(Node a,Node b)
{return b.x*a.y>a.x*b.y;
}int main()
{int n;while(scanf("%d",&n)!=EOF){memset(a,0,sizeof(a));long long sum=0;for(int i=0;i<n;i++){scanf("%lld%lld",&a[i].x,&a[i].y);sum+=a[i].y;//计算所有牛在花园中每秒的破坏度}sort(a,a+n,cmp);//对牛按破坏度排序long long num=0;for(int i=0;i<n-1;i++){sum-=a[i].y;//赶走一头牛后,减去该牛在花园中每秒的破坏度num+=2*sum*(a[i].x);//计算当前总破坏度}printf("%lld\n",num);}return 0;
}

Protecting the Flowers(POJ-3262)相关推荐

  1. Bailian2734 十进制到八进制【入门】(POJ NOI0113-45)

    问题链接:POJ NOI0113-45十进制到八进制 2734:十进制到八进制 总时间限制: 1000ms 内存限制: 65536kB 描述 把一个十进制正整数转化成八进制. 输入 一行,仅含一个十进 ...

  2. Bailian2676 整数的个数【入门】(POJ NOI0105-11)

    问题链接:POJ NOI0105-11 整数的个数 2676:整数的个数 总时间限制: 1000ms 内存限制: 65536kB 描述 给定k(1 < k < 100)个正整数,其中每个数 ...

  3. Bailian4029 数字反转【进制】(POJ NOI0105-29)

    问题链接:POJ NOI0105-29 数字反转 4029:数字反转 总时间限制: 1000ms 内存限制: 65535kB 描述 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数 ...

  4. Bailian2735 八进制到十进制【入门】(POJ NOI0113-46)

    问题链接:POJ NOI0113-46 八进制到十进制 2735:八进制到十进制 总时间限制: 1000ms 内存限制: 65536kB 描述 把一个八进制正整数转化成十进制. 输入 一行,仅含一个八 ...

  5. Silver Cow Party (POJ - 3268 )

    Silver Cow Party (POJ - 3268 ) 这道题是我做的最短路专题里的一道题,但我还没做这个,结果比赛就出了,真是.......... 题目: One cow from each ...

  6. 吴昊品游戏核心算法 Round 7 —— 熄灯游戏AI(有人性的Brute Force)(POJ 2811)

    暴力分为两种,一种属于毫无人性的暴力,一种属于有人性 的暴力.前面一种就不说了,对于后面一种情况,我们可以只对其中的部分问题进行枚举,而通过这些子问题而推导到整个的问题中.我称之为有人性的Brute ...

  7. 【二分】Best Cow Fences(poj 2018)

    Best Cow Fences poj 2018 题目大意: 给出一个正整数数列,要你求平均数最大,长度不小于M的字串,结果乘1000取整 输入样例 10 6 6 4 2 10 3 8 5 9 4 1 ...

  8. Flowers(二分答案)

    链接:https://ac.nowcoder.com/acm/contest/7830/J 来源:牛客网 题目描述 Recently Jack becomes much more romantic. ...

  9. 昂贵的聘礼(poj 1062)

    Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低 ...

  10. 主席树学习小结(POJ 2104)

    在高中的时候就听到过主席树了,感觉非常高端,在寒假的时候 winter homework中有一题是查找区间第K大的树,当时就开始百度这种网上的博客,发现主席树看不懂,因为那个root[i],还有tx[ ...

最新文章

  1. 2018机器学习和AI最大突破没找到,但有人发现了最大障碍!
  2. 手把手教你玩转SOCKET模型之重叠I/O篇(下)
  3. jQuery对html元素取值与赋值
  4. python模拟键盘输入视频_python教程-模拟鼠标和键盘输入
  5. 剥开比原看代码09:通过dashboard创建密钥时,前端的数据是如何传到后端的?
  6. django前后端分离部署
  7. 运行cudasift
  8. SpringBoot集成Actuator健康指示器health
  9. Android 系统(95)---Android build.prop参数详解
  10. ARMLINUX学习笔记(4)---ARM 体系结构
  11. 今天和孝辉一起去交大买书了!
  12. Java SE day02 pm
  13. 转载 GIS的下个十年(Cary Mann, vice president, Bentley)
  14. 企业微信之微信接收消息(“暂不支持此消息类型”解决方案)
  15. XAML 的摄氏度的符号
  16. 特征工程与表示学习:人工 vs 自动
  17. 张一鸣打造“抖音”等现象级产品的秘密:技术深度融合业务,引爆产品创新!...
  18. zxr10交换机配置手册vlan_中兴ZXR10配置说明.doc
  19. 【蓝桥杯选拔赛真题09】Scratch小猫旅行 少儿编程scratch蓝桥杯选拔赛真题讲解
  20. 逆向-360逆向writeup

热门文章

  1. 大数据不背“杀熟”的锅!高科技公司掌握了你的个人信息,都干了些啥?
  2. Simulink之器件换流式电压型无源逆变电路
  3. python写传奇脚本,Python趣味打怪:60秒学会一个例子,147段简单代码助你从入门到大师 | 中文资源...
  4. 按home键退出的activity可以不进入stop模式码_用了几年的iPhone,竟然不知道苹果手机还有“游戏模式”?...
  5. 当 Swagger 遇上 Torna,瞬间高大上了!
  6. Redis 分布式锁遇到的序列化问题
  7. Oracle发布了Java SE支持路线图,Java 8 支持到2030年
  8. 【转】Windows系统中ckplayer视频边下边放,视频转码mp4及last atom in file was not a moov atom问题...
  9. Vue nextTick执行时机分析
  10. 突破RHEL各种版本高阶应用限制!群集,虚拟化想怎么装就怎么装!!