zoukankan      html  css  js  c++  java
  • hdu4882 水贪心

    题意:
         给你n个任务,每个任务有两个权值,t[i],b[i],前面的是完成任务所需时间,后面的那个是个参数,每个任务完成的代价是完成当前任务总时间(之前的+现在的)
    sumt * b[i],问你完成所有任务的总花费最小是多少。
    思路:
         水贪心吧,不给证明了,没啥意思,就想象一下,那个东西价值贵就先干那个就行了

    价值等于 b[i] / t[i],价值贵的放到最后干会吃亏的。

    #include<stdio.h>
    #include<algorithm>
    
    using namespace std;
    
    typedef struct
    {
       __int64 x ,y;
       double key;
    }NODE;
    
    bool camp(NODE a ,NODE b)
    {
       return a.key > b.key;
    }
    
    NODE node[110000];
    
    int main ()
    {
       int n ,i;
       while(~scanf("%d" ,&n))
       {
          for(i = 1 ;i <= n ;i ++)
          scanf("%I64d" ,&node[i].x);
          for(i = 1 ;i <= n ;i ++)
          {
             scanf("%I64d" ,&node[i].y);
             node[i].key = node[i].y * 1.0 / node[i].x;
          }
          sort(node + 1 ,node + n + 1 ,camp);
          __int64 sum = 0 ,ans = 0;
          for(i = 1 ;i <= n ;i ++)
          {
             sum += node[i].x;
             ans += sum * node[i].y;
          }
          printf("%I64d
    " ,ans);
       }
       return 0;
    }
    
    
    

  • 相关阅读:
    前端模板网站
    python之进程,线程,协程
    Docker学习之dockerhub
    Docker学习04
    Docker学习03
    http://mrdede.com/(织梦先生)
    爬取图片
    requests实战之药监总局数据爬取
    requests实战之豆瓣电影爬取
    requests实战之网页采集器
  • 原文地址:https://www.cnblogs.com/csnd/p/12062930.html
Copyright © 2011-2022 走看看