题目描述

约翰留下他的N只奶牛上山采木。他离开的时候,她们像往常一样悠闲地在草场里吃草。
可是,当他回来的时候,他看到了一幕惨剧:牛们正躲在他的花园里,啃食着他心爱的美丽花朵!为了使接下来花朵的损失最小,约翰赶紧采取行动,把牛们送回牛棚。  
牛们从1到N(2≤N≤100000)编号.第i只牛所在的位置距离牛棚Ti(1≤Ti≤2000000)分钟的路程,而在约翰开始送她回牛棚之前,她每分钟会啃食Di(1≤Di≤100)朵鲜花。
无论多么努力,约翰一次只能送一只牛回棚。而运送第第i只牛事实上需要2Ti分钟,因为来回都需要时间。    
写一个程序来决定约翰运送奶牛的顺序,使最终被吞食的花朵数量最小。

输入

第1行输入N; 
之后N行每行输入两个整数Ti和Di。 

输出

输出一个整数,表示最小数量的花朵被吞食。

样例输入 Copy

  1. 6
  2. 3 1
  3. 2 5
  4. 2 3
  5. 3 2
  6. 4 1
  7. 1 6

样例输出 Copy

  1. 86
    强烈要求改变题面意思!奶牛在Fj过去的路程中就被吓傻了!她们不会在这时吃花!
    第一反应最优解,先dp吧,但是发现貌似没有这么麻烦。。。样例贪心就可以过。但是我没有看明白题目,于是就乱搞了一通,把样例水过去就不水了,于是0分。
    分析:
    继续贪心算法。Fj要吃的花的数量最少,进行假设:牛12,她们的dt分别用dxtxdyty来表示。
    假设先搬牛1比先搬牛2得出的解更优。
    于是:
  1. xd*xt+(xt+yt)*yd<=yd*yt+(yt+xt)*xd;
  2. xd*xt+xt*yd+yt*yd<=yd*yt+yt*xd+xt*xd;
  3. 化简得
  4. xt*yd<=yt*xd
  1. (眼花缭乱)
    反正就是cmp按照这个东西排序,就能得到最优的顺序
    代码:
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. using namespace std;
  5. const int maxn=;
  6. int n;//2 100000
  7. struct node
  8. {
  9. long long int t,d;
  10. }a[maxn];
  11. long long int t;
  12. long long int ans;
  13. bool cmp(node x,node y)
  14. {
  15. return x.d*y.t>=y.d*x.t;
  16. }
  17. inline long long read()
  18. {
  19. long long x=,f=;char s=getchar();
  20. while(s>''||s<''){if(s=='-')f=-;s=getchar();}
  21. while(s<=''&&s>=''){x=x*+s-'';s=getchar();}
  22. return x*f;
  23. }
  24. int main()
  25. {
  26. n=read();//scanf("%d",&n);
  27. for(int i=;i<=n;i++)
  28. {
  29. a[i].t=read();
  30. a[i].d=read();//scanf("%d%d",&a[i].t,&a[i].d);
  31. }
  32. sort(a+,a+n+,cmp);
  33. for(int i=;i<=n;i++)
  34. {
  35. ans+=t*a[i].d;
  36. t+=a[i].t*;
  37. }
  38. printf("%lld",ans);
  39. return ;
  40. }

(完)

  

  1.  

20190630A(贪心)的更多相关文章

  1. BZOJ 1692: [Usaco2007 Dec]队列变换 [后缀数组 贪心]

    1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1383  Solved: 582[Submit][St ...

  2. HDOJ 1051. Wooden Sticks 贪心 结构体排序

    Wooden Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  3. HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  4. BZOJ 1691: [Usaco2007 Dec]挑剔的美食家 [treap 贪心]

    1691: [Usaco2007 Dec]挑剔的美食家 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 786  Solved: 391[Submit][S ...

  5. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  6. 【BZOJ-4245】OR-XOR 按位贪心

    4245: [ONTAK2015]OR-XOR Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 486  Solved: 266[Submit][Sta ...

  7. code vs 1098 均分纸牌(贪心)

    1098 均分纸牌 2002年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解   题目描述 Description 有 N 堆纸牌 ...

  8. 【BZOJ1623】 [Usaco2008 Open]Cow Cars 奶牛飞车 贪心

    SB贪心,一开始还想着用二分,看了眼黄学长的blog,发现自己SB了... 最小道路=已选取的奶牛/道路总数. #include <iostream> #include <cstdi ...

  9. 【贪心】HDU 1257

    HDU 1257 最少拦截系统 题意:中文题不解释. 思路:网上有说贪心有说DP,想法就是开一个数组存每个拦截系统当前最高能拦截的导弹高度.输入每个导弹高度的时候就开始处理,遍历每一个拦截系统,一旦最 ...

随机推荐

  1. springmvc框架的使用

    1.在idea中新建java web项目,引入spring和springmvc所需jar包,其中 spring-web-3.2.12.RELEASE.jar:在web应用开发时使用spring框架所需 ...

  2. 04-03 scikit-learn库之AdaBoost算法

    目录 scikit-learn库之AdaBoost算法 一.AdaBoostClassifier 1.1 使用场景 1.2 参数 1.3 属性 1.4 方法 二.AdaBoostRegressor 更 ...

  3. JS基本数据类型和引用数据类型的区别及深浅拷贝

    前言 首先我们先来了解一下什么叫栈堆,基本数据类型与引用数据类型 1.栈(stack)和堆(heap)stack为自动分配的内存空间,它由系统自动释放:而heap则是动态分配的内存,大小也不一定会自动 ...

  4. 美化你的IDEA—背景图片

    IDEA设置背景图片 很多人都不知道IDEA可以像桌面一样设置背景图片,下面我们来美化我们的开发工具. 有的IDEA版本是搜不到的,我这个就是,现在搜的是已经装好的. 没有的我们可以去http://p ...

  5. 并发新构件之DelayQueue:延时队列

    DelayQueue:延时队列,首先是一个队列,所以可以持有对象,但是仅限于实现了Delayed接口的对象.重写getDelay()和compareTo()(因为要比较)方法: 通俗来讲:延时队列的就 ...

  6. 1.Linux-CentOS7.6安装教程

    了解Linux Linux 就是一个操作系统,主要为企业提供支持与服务. 学习Linux需要具备什么基础?能看懂中文,能看懂简单的 English ​ 1.什么是Linux? Linux:和我们常见的 ...

  7. Arduino学习笔记⑧ 红外通信

    1.前言     红外通信是一种利用红外光编码进行数据传输的无线通信方式,在目前来说是使用非常广泛的.生活中常见电视遥控器,空调遥控器,DVD遥控器(现在估计是老古董了),均使用红外线遥控.使用红外线 ...

  8. 《HTML5+CSS3+JavaScript 从入门到精通(标准版)》学习笔记(二)

    这是一个应用的例子,学以致用嘛 <!--这些代码我就直接放在了博客园的"页首Html代码"中,用于自定义博客,效果就是页面左上角的白色文字--> <p> & ...

  9. 微信小程序和微信小程序之间的跳转和传参示例代码附讲解

    一:微信小程序跳转 使用限制 需要用户触发跳转 从 2.3.0 版本开始,若用户未点击小程序页面任意位置,则开发者将无法调用此接口自动跳转至其他小程序. 需要用户确认跳转 从 2.3.0 版本开始,在 ...

  10. Java中Object类hashCode的底层实现

    Java中Object类hashCode的底层实现 openjdk\jdk\src\share\native\java\lang\Object.c 42 static JNINativeMethod ...