第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 J-强迫症的序列
2018-04-12 22:15
260 查看
第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 J-强迫症的序列
链接:https://www.nowcoder.com/acm/contest/90/J来源:牛客网
题目描述
牛客网是IT求职神器,提供海量C++、JAVA、前端等职业笔试题库,在线进行百度阿里腾讯网易等互联网名企笔试面试模拟考试练习,和牛人一起讨论经典试题,全面提升你的编程。作为acmer的小A,牛客网是他首选的题库。小A是一个中度强迫症患者,每次做数组有关的题目都异常难受,他十分希望数组的每一个元素都一样大,这样子看起来才是最棒的,所以他决定通过一些操作把这个变成一个看起来不难受的数组,但他又想不要和之前的那个数组偏差那么大,所以他每次操作只给这个数组的其中n-1个元素加1,但是小A并不能很好的算出最优的解决方案,如果你能帮他解决这个问题,小A就能送你一个气球
输入描述:
第一行一个整数T(T<=100),表示组数对于每组数据有一个n,表示序列的长度(0< n <100000)
下面一行有n个数,表示每个序列的值(0
输出描述:
输出两个数第一个数表示最小的操作步数
第二个数经过若干步以后的数组元素是什么
示例1
输入
1 3 1 2 3
输出
3 4
思路
n-1个元素加1,相对(它们彼此的差值)来说,等于其中1个元素-1。最小的操作步数:以数组的最小值为基准,其余每个数减1若干次直至等于最小值,次数之和就是最小的操作数。
经过若干步以后的数组元素:等于数组的最小值加上 最小的操作步数。
AC代码
#include <iostream> #include <vector> using namespace std; int main() { int T; cin >> T; while(T--) { int n; cin >> n; vector<int> vec; int _min,_sum=0,ans1,ans2; for(int i=0; i<n; i++) { int a; cin >> a; _sum+=a; vec.push_back(a); } // 找数组的最小值 _min=vec.at(0); for(int i=1; i<vec.size(); i++) { if(vec.at(i)<_min) _min=vec.at(i); } ans1=_sum -_min*n; // 最小的操作步数 ans2=_min+ans1; // 经过若干步以后的数组元素 cout << ans1 << " " << ans2 << endl; } return 0; }
相关文章推荐
- 牛客网 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛-强迫症的序列
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--J-强迫症的序列
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 J-强迫症的序列
- 【第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛】J题 强迫症的序列
- J:强迫症的序列(逆向转换思维) (第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛)
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 J 强迫症的序列【思维】
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 D psd面试(最长回文子序列,区间dp)
- D:psd面试 (LCS最长公共子序列&最长回文子序列)第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 J-强迫症的序列
- 【第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛】E题 回旋星空
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 K 密码
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 J 强迫症的序列
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛(下)
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 A-跳台阶
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 E-回旋星空
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 D psd面试 【LCS】
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 K 密码
- 2018/3/25训练日记 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 J 强迫症的序列