• 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
  • 相关阅读:
    K8s 使用 nfs-client-provisioner
    MySQL IF CASE 例子
    Nginx 限速
    Python 元组操作
    Python if, while,for,continue,break,三目运算符
    Centos7 安装 pyenv
    MySQL 查看大事务
    Tomcat 修改日志路径及日志分割
    游戏攻略 美少女万华镜5
    自建远程桌面过程 vnc + frp
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3878204.html
Copyright © 2020-2023  润新知