竞赛
考级
上学之路 题目大意 有 333 个地点,每两个地点之间均有一条可以往返走的道路。 通过家与学校之间的道路需要 t1t_1t1 分钟,通过学校与小码王之间的道路需要 t2t_2t2 分钟,通过家和小码王之间的道路需要 t3t_3t3 分钟。 需要求出从家到学校,从学校到小码王,从家到小码王分别至少需要多少时间。 题意分析 在该题的条件下,每两个地点之间的路径方案只有两种,每次求出其最小值即可。 以家与学校为例,第一种方案是从家直接到学校,时间为 t1t_1t1 ;第二种方案是从家先到小码王,再从小码王到学校,时间为 t2+t3t_2 + t_3t2 +t3 。故从家到学校至少需要 min(t1,t2+t3)min(t_1, t_2+t_3)min(t1 ,t2 +t3 ) 分钟。 解题思路 使用 minminmin 函数对于任意两个地点求出其直接到达和经过另一个地点再到达花费时间的最小值即可。 时间复杂度解析 本题执行时间不受输入影响,因此时间复杂度为 O(1)O(1)O(1) 代码演示
AC君
霸气侧漏张涛威猛无敌666
#include<bits/stdc++.h> using namespace std; int main(){ int a,b,c; cin >> a >>b >> c; printf("%d\n%d\n%d",min(a,b+c),min(b,a+c),min(c,a+b));}
ddgd
YuQing1919
???
#include<bits/stdc++.h> using namespace std; int main(){ int t1,t2,t3; cin>>t1>>t2>>t3; if(t1>t2+t3){ cout<<t2+t3<<endl; }else{cout<<t1<<endl;} if(t2>t1+t3){ cout<<t1+t3<<endl; }else{cout<<t2<<endl;} if(t3>t1+t2){ cout<<t1+t2<<endl; }else{cout<<t3<<endl;} }
U宝
#include<bits/stdc++.h> using namespace std; void aaa(int t1,int t2,int t3){ if(t1>t2+t3){ cout<<t2+t3<<endl; }else{cout<<t1<<endl;} if(t2>t1+t3){ cout<<t1+t3<<endl; }else{cout<<t2<<endl;} if(t3>t1+t2){ cout<<t1+t2<<endl; }else{cout<<t3<<endl;} } int main(){ int t1,t2,t3; cin>>t1>>t2>>t3; aaa(t1,t2,t3); }
提交答案之后,这里将显示提交结果~