C++算法练习题 T1(henu.hjy)
时间:2019-02-14
本文章向大家介绍C++算法练习题 T1(henu.hjy),主要包括C++算法练习题 T1(henu.hjy)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
问题描述
给两组数,各n个。
请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小。要求程序输出这个最小值。
例如两组数分别为:1 3 -5和-2 4 1
那么对应乘积取和的最小值应为:
(-5) * 4 + 3 * (-2) + 1 * 1 = -25
输入格式
第一个行一个数T表示数据组数。后面每组数据,先读入一个n,接下来两行每行n个数,每个数的绝对值小于等于1000。
n<=8,T<=1000
输出格式
一个数表示答案。
样例输入
3
1 3 -5
-2 4 1
5
1 2 3 4 5
1 0 1 0 1
样例输出
-25
6
我做题时的思考:首先每组两个数组,共有T组,那么使用vector这样的变长数组最为合适,对于每组的第一个组数按从小到大排序,第二组数按从大到小排序,使用的是sort()函数,如果对于sort()和vector不太理解可以打开我的博客中,C++ 学习中STL函数库的学习进行查看,很简单。然后在排完序后,两数组下标相同进行相乘,然后将其结果进行相加,导入到arr[i]数组作为结果,最后for循环进行输出。
代码实现(自己写的,如有问题请留言):
#include <iostream>
#include <vector>
#include <algorithm>
#define ERROR -1
using namespace std;
bool cmp(int a,int b){
return a>b; //默认由小到大,使用该cmp函数则由大到小
}
int main()
{
int T;//数据组数
cin>>T;
if(T>1000){
return ERROR;
}
int arr[T];//用于存储结果
vector<int> v[2*T];
for(int i=0;i<T;i++){
int n,num;
cin>>n;
for(int j = 1;j<=n;j++){
cin>>num;
v[i*2].push_back(num);
}
sort(v[i].begin(),v[i].end());
for(int j = 1;j<=n;j++){
cin>>num;
v[i*2+1].push_back(num);
}
sort(v[i*2+1].begin(),v[i*2+1].end(),cmp);
num = 0;
for(int j = 0;j < n;j++){
num = v[i*2][j] * v[i*2+1][j] + num;
}
arr[i] = num;
}
for(int i=0;i<T;i++){
cout<<arr[i]<<endl;
}
return 0;
}
- HTTP加速器varnish安装小记(1)
- 手把手教你估算深度神经网络的最优学习率(附代码&教程)
- 批处理判断第一个硬盘的最后一个分区并进入
- MVCC原理探究及MySQL源码实现分析
- 关于热点数据导出与加载的影响,多的是你不知道的事
- 【Python】30行代码教你将微信变成智能回复机器人
- 【python爬虫】知乎互联网话题问答内容可视化分析
- “mysqlbinlog”工具做binlog server靠谱吗?
- 看各路神仙如何大战MySQL insecure warning报警有感
- 由optimizer_switch所引起的诡异问题
- 【Oracle 12c Flex Cluster专题 】— Leaf Node的故障迁移
- MySQL中的统计信息相关参数介绍
- iOS学习——UITableViewCell两种重用方法的区别
- iOS学习——UIPickerView的实现年月选择器
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 力扣:地下城游戏,手把手教你做困难题
- RN布局
- 学会MySQL主从复制读写分离,看这篇就够了
- Canal+Kafka实现MySQL与Redis数据同步
- 超详细canal入门,看这篇就够了
- 详细讲解!RabbitMQ防止数据丢失
- 详细讲解!从秒杀聊到ZooKeeper分布式锁
- 正确使用 wait/notify/notify方法以及源码解析
- 秒杀商品超卖事故:Redis分布式锁请慎用!
- 3D开发是一个生态,ThingJS支持js,css,json,html外部资源引用
- 手把手教你实现xxl-job分布式任务调度平台搭建
- 在 vscode 中 debugger 调试
- MongoDB 的安装
- 一次opencanary自定义实践
- 从0到1编写一个Xposed Module :Anti Screenshot