zoukankan      html  css  js  c++  java
  • 2014多校第二场1011 || HDU 4882 ZCC Loves Codefires (贪心)

    题目链接

    题意 : 给出n个问题,每个问题有两个参数,一个ei(所要耗费的时间),一个ki(能得到的score)。每道问题需要耗费:(当前耗费的时间)*ki,问怎样组合问题的处理顺序可以使得耗费达到最少。

    思路 : 如果有两个样例,e1=10,e2 = 20,k1 = 1 ,k2 = 3 ;

    先解决第一个问题 : 10 * 1 + (10 + 20 ) * 3 

    先解决第二个问题 : 20 * 3 + (20 + 10) * 1

    展开之后发现两个只有10 * 3 与 20 * 1是不同的。所以排序的时候看交叉相乘谁的小即可。

     1 //HDU 4882
     2 #include <cstdio>
     3 #include <iostream>
     4 #include <algorithm>
     5 
     6 using namespace std ;
     7 typedef __int64 LL ;
     8 
     9 struct node
    10 {
    11     LL e ;
    12     LL k ;
    13 } p[100100];
    14 
    15 int cmp(struct node a,struct node b)
    16 {
    17     return a.e*b.k < a.k * b.e ;
    18 }
    19 int main()
    20 {
    21     int N ;
    22     cin >> N ;
    23     for(int i = 0 ; i < N ; i++)
    24         cin >> p[i].e ;
    25     for(int i = 0 ; i < N ; i++)
    26         cin >> p[i].k  ;
    27     sort(p ,p + N ,cmp) ;
    28     LL sum = 0,t = 0 ;
    29     for(int i = 0 ; i < N ; i++)
    30     {
    31         t += p[i].e ;
    32         sum += p[i].k*t ;
    33     }
    34     cout << sum << endl ;
    35     return 0 ;
    36 }
    View Code
  • 相关阅读:
    linux会话浅析
    linux memory lock浅析
    浅谈动态库符号的私有化与全局化
    LINUX内核内存屏障
    linux内存屏障浅析
    linux内核mem_cgroup浅析
    记一个linux内核内存提权问题
    linux内核cfs浅析
    linux内核tmpfs/shmem浅析
    linux IPv4报文处理浅析
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3878204.html
Copyright © 2011-2022 走看看