zoukankan      html  css  js  c++  java
  • 算法设计与分析 4.2 洪尼玛与网络攻防战

    ★题目描述

    有n名黑客袭击了他公司的账户,第i名黑客每分钟可以从账户中盗取ci元,对付第i名黑客需要2*ti时间

    一旦洪尼玛对第i名黑客开始进行攻防,该黑客将无法继续盗取钱财,但其他未被攻防的黑客可以继续盗取钱财。

    这n名黑客从第0时刻开始进行袭击。洪尼玛想知道对付完这n名黑客后被盗取的金额最小是多少?

    ★输入格式

    第一行为一个正整数n,表示黑客的数量;

    接下来n行,每行两个正整数ci、ti,表示第i名黑客;

    对于60%的数据,1<=n<=103;

    对于100%的数据,1<=n<=105、1<=ci、ti<=103。

    ★输出格式

    输出一个正整数,表示被盗取的最小金额。

    ★样例输入

    5
    1 1
    2 2
    3 3
    4 4
    5 5
    

    ★样例输出

    170
    

    ★提示

    /*
    根据 ci/ti 排序
    */
    #include<bits/stdc++.h>
    using namespace std;
    int ID[100005], C[100005], T[100005];
    long long ans=0, res=0; 
    int n;
    
    bool cmp(const int a, const int b){
    	return C[a]*T[b] > C[b]*T[a];
    }
    
    int main(){
    	scanf("%d",&n);
    	for(int i=0; i<n; ++i){
    		scanf("%d%d", &C[i], &T[i]);
    		ID[i]=i;
    		ans+=C[i];
    	}
    	
    	sort(ID, ID+n, cmp);
    	
    	for(int i=0; i<n; ++i){
    		ans-=C[ID[i]];
    		res+=ans*T[ID[i]]*2;
    	}
    	printf("%lld
    ",res);
    	return 0;
    }
    
  • 相关阅读:
    mysql使用group by查询报错SELECT list is not in GROUP BY clause and contains nonaggregated column...解决方案
    CentOS7 使用minikube 搭建kubernetes 学习环境
    5
    4
    3
    2
    1
    8
    7
    Algorithm
  • 原文地址:https://www.cnblogs.com/yejifeng/p/12063344.html
Copyright © 2011-2022 走看看