• poj3262


    一、题意:有n头牛,每头牛每分钟会吃D个菜,把这头牛赶回去需要时间T(人再返回又需要T),一次只能赶回去一头牛,也就是说剩下的牛会继续吃菜。求牛最少吃多少菜

    二、思路:贪心。按D/T将牛进行排序,然后计算即可。

    三、代码:

     1 #include"iostream"
     2 #include"stdio.h"
     3 #include"algorithm"
     4 #include"string.h"
     5 using namespace std;
     6 
     7 const int MAXN=100005;
     8 typedef long long ll;
     9 const ll INF=100000000000;
    10 
    11 int used[MAXN];
    12 struct Cow
    13 {
    14     int t,d;
    15     double div;
    16 };
    17 Cow cows[MAXN];
    18 int n;
    19 
    20 bool Cmp(const Cow a,const Cow b)
    21 {
    22     return a.div>b.div;
    23 }
    24 ll Solve()
    25 {
    26     ll res=0;
    27     ll sum=0;
    28     for(int i=0;i<n;i++)
    29         sum+=cows[i].d;
    30     for(int i=0;i<n;i++){
    31         sum-=cows[i].d;
    32         res+=sum*2*cows[i].t;
    33     }
    34     return res;
    35 }
    36 
    37 int main()
    38 {
    39     while(scanf("%d",&n)==1)
    40     {
    41         for(int i=0;i<n;i++){
    42             scanf("%d%d",&cows[i].t,&cows[i].d);
    43             cows[i].div=double(cows[i].d)/double(cows[i].t);
    44         }
    45         sort(cows,cows+n,Cmp);
    46         cout<<Solve()<<endl;
    47     }
    48     return 0;
    49 }
    View Code
  • 相关阅读:
    线程
    开启程序子进程的方式
    multiprocess模块
    计算机网络小知识
    解决粘包问题
    网络编程相关
    反射与元类
    多态相关
    封装相关与接口
    类的继承和组合
  • 原文地址:https://www.cnblogs.com/acm-jing/p/10060554.html
Copyright © 2020-2023  润新知