ACGO欢乐赛#31 题解
2024-10-21 11:50:57
发布于:广东
这次比赛很很很很……(省略100000个)水,130左右个AK了呢!
T1:
这题没啥好说的,我用的是列举三个结果比大小的方法
#include <iostream>
using namespace std;
int main() {
int a,b,c;
cin>>a>>b>>c;
int maxsum=max(a+b,max(a+c,b+c));//列举比大小
cout<<maxsum<<endl;
return 0;
}
T2:
这题我是输入完直接从小到大排序,然后用首项减去末项得到差的
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,a[1000005];
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);//sort排序
cout<<a[n]-a[1];//首项减去末项得到差值
return 0;
}
T3:
一个循环直接解决,a是最终答案的字符串
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
string s1,s2;
cin>>s1>>s2;
string a;
for(int i=0;i<n;i++){
a+=s1[i];//将s1的第i项添加到a
a+=s2[i];//将s2的第i项添加到a
}
cout<<a;
return 0;
}
T4:
这道题有一点难度了,看我代码注释就懂了
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
vector<int> a(n);
for (int i=0;i<n;i++) cin>>a[i];
int asum=0,bsum=0;
while (!a.empty()) {//如果还有筹码
auto it=max_element(a.begin(),a.end());//求最大值
asum+=*it;//更新a筹码总值
a.erase(it);//拿取完之后删除
if (!a.empty()) {//如果还有筹码
it=max_element(a.begin(),a.end());//求最大值
bsum+=*it;//更新b筹码总值
a.erase(it);//拿取完之后删除
}
}
cout<<asum-bsum<<endl;//输出差
return 0;
}
T5:
这个没啥好讲的,输入完s后反过来输出就行了
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,m;
cin>>n>>m;
int s[n][m];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++) cin>>s[i][j];
}
for(int i=0;i<m;i++) {//m,n调换位置
for(int j=0;j<n;j++) cout<<s[j][i]<<" ";
cout<<endl;
}
return 0;
}
T6:
这题输入完之后先排序,再选k个相邻元素循环,跟T2类似,比大小得到m
#include<bits/stdc++.h>
using namespace std;
int main() {
int n,k;
cin>>n>>k;
vector<int> a(n);
for(int i=0;i<n;i++) cin>>a[i];
sort(a.begin(),a.end());//sort排序
int m=a[n-1];
for(int i=0;i<=n-k;i++){
int d=a[i+k-1]-a[i];//求差值
if(d<m) m=d;//如果值是最小的就更新m
}
cout<<m<<endl;
return 0;
}
全部评论 3
T4:
#include<iostream> #include<algorithm> using namespace std; bool cmp(int a,int b){ return a>b; } int main(){ int arr[200000],n,a=0,b=0; cin>>n; for(int i=1;i<=n;i++){ cin>>arr[i]; } sort(arr+1,arr+n+1,cmp); for(int i=1;i<=n;i++){ if(i%2==1){ a+=arr[i]; } else{ b+=arr[i]; } } cout<<a-b; return 0; }
2024-10-14 来自 上海
0?
2024-10-14 来自 上海
0谢谢
2024-10-14 来自 广东
0用个sort()模拟一下就行了
2024-10-14 来自 云南
0
不得不说acgo欢乐赛越来越水
2024-10-13 来自 广东
0顶
2024-10-13 来自 广东
0
有帮助,赞一个