浙江大学软件学院2020年保研上机模拟练习 7-2 Distance of Triples

news/2024/7/1 10:30:43

思路一:

3个数组都按照小到大排序,设置3个指针,起始都在数组的末尾,如果1个指针向前移动1位可以让对应元素和另两个数组元素的距离之和减小,则移动它。如果某一回合三个指针都没动,就跳出循环。

非满分:23/25,应该是数据比较弱。

思路一代码:

#include<cstdio>
#include<vector>
#include<iostream>
#include<algorithm>using namespace std;const int maxn = 10010;int A[maxn],B[maxn],C[maxn];int main(){ int la,lb,lc;cin>>la>>lb>>lc;for(int i=0;i<la;i++){cin>>A[i];}sort(A,A+la);for(int i=0;i<lb;i++){cin>>B[i];}sort(B,B+lb);for(int i=0;i<lc;i++){cin>>C[i];}sort(C,C+lc);int ia = la-1,ib = lb-1,ic = lc-1;while(ia>0||ib>0||ic>0){bool changed = false;if(abs(A[ia-1]-B[ib])+abs(A[ia-1]-C[ic])<abs(A[ia]-B[ib])+abs(A[ia]-C[ic])&&ia>0){ia--;changed = true;}if(abs(A[ia]-B[ib-1])+abs(B[ib-1]-C[ic])<abs(A[ia]-B[ib])+abs(B[ib]-C[ic])&&ib>0){ib--;changed = true;	}if(abs(A[ia]-C[ic-1])+abs(B[ib]-C[ic-1])<abs(A[ia]-C[ic])+abs(B[ib]-C[ic])&&ic>0){ic--;changed = true;}if(changed == false)break;}int minD = abs(A[ia]-B[ib])+abs(A[ia]-C[ic])+abs(B[ib]-C[ic]);printf("MinD(%d, %d, %d) = %d",A[ia],B[ib],C[ic],minD);return 0;
}


http://lihuaxi.xjx100.cn/news/240880.html

相关文章

oracle 查询重复数据并且删除, 只保留一条数据

数据库操作中&#xff0c;经常会因为导数据造成数据重复&#xff0c;需要进行数据清理&#xff0c;去掉冗余的数据&#xff0c;只保留正确的数据 一&#xff1a;重复数据根据单个字段进行判断 1、首先&#xff0c;查询表中多余的数据&#xff0c;由关键字段&#xff08;name&am…

《C++游戏编程入门(第4版)》——1.12 习题

本节书摘来自异步社区出版社《C游戏编程入门&#xff08;第4版&#xff09;》一书中的第1章&#xff0c;第1.1节&#xff0c;作者&#xff1a;【美】Michael Dawson&#xff08;道森&#xff09;&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.12 习题 C…

1021 Deepest Root

要解决两大问题&#xff1a; 1. 数包含几个连通分量 2. 如何找到最深结点 注意&#xff1a;connected components的意思是连通分量 问题1我用并查集解决 问题2转化为如何得到每个结点的深度 值得注意之处是对于问题2来说&#xff0c;下图是测试用例1给出的树 可以看出从1…

consul安装配置使用

2019独角兽企业重金招聘Python工程师标准>>> 环境 centos:7.3 docker:1.12.6 kernel:3.10.0-514.6.1.el7.x86_64 consul:0.8.1 server1:10.1.13.221 server2:10.1.13.222 consul的功能 服务发现 健康检查 支持多数据中心 key/value存储 consul的使用场景 docker实例…

警惕!国内某广告SDK内置“后门”功能,Google Play商店已强制下架

本文讲的是警惕&#xff01;国内某广告SDK内置“后门”功能&#xff0c;Google Play商店已强制下架&#xff0c;新闻摘要 Lookout安全团队近日发现了个信的广告软件开发工具包&#xff08;SDK&#xff09;&#xff0c;可以通过下载恶意插件&#xff0c;借助其他合法app对用户实…

java 冒泡排序和快速排序 实现

面试的时候经常会遇到面试官让你直接手写排序算法&#xff0c;下面是冒泡排序和快速排序的实现。冒泡排序基本流程就是&#xff0c;自下而上比较相邻的两个元素进行比较&#xff0c;让大的元素往下面沉&#xff0c;较小的往上冒。按照排序规则进行比较&#xff0c;如果是跟排序…

[转]语音识别中区分性训练(Discriminative Training)和最大似然估计(ML)的区别...

转&#xff1a;http://blog.sina.com.cn/s/blog_66f725ba0101bw8i.html关于语音识别的声学模型训练方法已经是比较成熟的方法&#xff0c;一般企业或者研究机构会采用HTK工具包、Kaldi等进行训练&#xff0c;目前从声学模型出发&#xff0c;提高系统性能的主要策略主要有&#…