列表

详情


NC200130. “云 计 算”

描述

计算科学正在经历一场革命,被称为「云计算」,是在互联网上访问软件应用程序、处理能力和数据存储的地方。 在过去的几十年里,计算科学可能已经与我们的工作和家庭生活密切相关。 然而,即使互联网被大量使用,几乎所有的计算资源都是本地的。 这意味着计算机应用、数据存储和处理能力已经接近或相对接近它们的用户。

 

技术产业革命的春风也吹到了广西大学,我们的创新创业项目渐渐有了拥抱云计算的意识,各大ECS厂商1/月的学生机被团队们广泛采购并商业化使用,这就是一个很好的栗子。

 

我们都知道,云计算是将计算运行在别的地方,正如我们接下来的问题需要将困难的问题转移到让聪明的你来解决一样。

 

现在有个三元组,你需要将他们以任意顺序安排在一个一维数组里,假设数组下标以开始,对于一个你安排好之后的数列,我们定义他的价值是:


请问这个数列所有可能中,他最小价值应该是多少?

输入描述

第一行输入一个整数n表示三元组个数

接下来行,每行三个空格分隔的正整数分别表示这个三元组的




输出描述

输出一行一个整数表示答案

示例1

输入:

3
3 2 2
2 4 3
6 1 3

输出:

65

说明:

样例的最小价值方案可以是:

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++14(g++5.4) 解法, 执行用时: 96ms, 内存消耗: 1756K, 提交时间: 2020-05-30 03:08:48

#include<iostream>
#include<algorithm>
using namespace std;
int d[100001]={0};
main(){
	int n;
	cin>>n;
	int a,b,c;
		long long cii=0;
	for(int i=0;i<n;i++){
	cin>>a>>b>>c;
	d[i]+=a+c-b;
	cii+=a+2*c+b*n;
	}

	sort(d,d+n);
	int t=n;
	for(int i=0;i<t;i++){
	cii+=d[i]*n;
	n--; 
	}
	cout<<cii;
}

C++11(clang++ 3.9) 解法, 执行用时: 5ms, 内存消耗: 376K, 提交时间: 2019-12-08 13:28:52

#include<bits/stdc++.h>
using namespace std;
int d[100000+100];
int main() {
	int n,sum=0,a,b,c;
	cin>>n;
	for(int i=1; i<=n; i++) {
		cin>>a>>b>>c;
		sum+=a+n*b+c*2;
		d[i]=a+c-b;
	}
	sort(d+1,d+n+1,greater<int>());
	for(int i=1;i<=n;i++)
	sum+=i*d[i];
	cout<<sum<<endl;
	return 0;
}

Python3(3.9) 解法, 执行用时: 496ms, 内存消耗: 5008K, 提交时间: 2020-12-16 20:18:06

n = int(input())
ans = 0
ls = []
for i in range(1, 1+n):
    a,b,c = map(int,input().split())
    d = a - b + c
    ans += a + n*b + 2*c
    ls.append(d)
ls.sort()
ls = ls[::-1]
for i in range(1, 1+n):
    ans += i*ls[i-1]
print(ans)

上一题