竞赛
考级
哇塞,我传伞太准了
题解如下: #include <bits/stdc++.h> using namespace std; vector<int> v; int main() { int n,m; cin>>n>>m; int q=n+m; for(int i=0;i<q;i++){ int x; cin>>x; v.push_back(x); } sort(v.begin(), v.end()); for(int i=0;i<q;i++){ cout<<v[i]<<" "; } return 0; }
琮
亚洲卷王 AK IOI
【算法分析】 将两组数组分别存在 aaa,bbb 数组中,合并的结果存在 ccc 数组中。 考虑归并排序中合并的方法,iii,jjj 为两个数组的初始位置赋值为 111,cntcntcnt 初始化为 000 表示 ccc 数组的初始位置。 while循环条件为:i <= n && j <= m,在循环中: 如果 a[i]<b[j]a[i]<b[j]a[i]<b[j],表示 a[i]a[i]a[i] 的值在 b[j]b[j]b[j] 前面,将 a[i]a[i]a[i] 的值赋给 c[cnt]c[cnt]c[cnt],i++,cnt++,下标加 111 进行下一轮比较。 否则 b[j]b[j]b[j] 的值在 a[i]a[i]a[i] 前面,将 b[j]b[j]b[j] 的值赋给 c[cnt]c[cnt]c[cnt],j++,cnt++,下标加 111 进行下一轮比较。 循环结束后,aaa 数组和 bbb 数组中可能存在剩下的元素没有赋值,将剩下的元素存在 ccc 数组中。 最后输出 ccc 数组。 【参考代码】 【时间复杂度】 O(n+m)O(n+m)O(n+m) 【预计得分】 100pts100pts100pts
AC君
cat
直接看代码
李驰飞松
#include<bits/stdc++.h> using namespace std; int main(){ int n,m; cin>>n>>m; int a[n],b[m],c[n+m]; for(int i=0;i<n;i++){ cin>>a[i]; c[i]=a[i]; } for(int i=0;i<m;i++){ cin>>b[i]; c[i+n]=b[i]; } sort(c,*****); for(int i=0;i<n+m;i++){ cout<<c[i]<<" "; } return 0; }
139****4214
西外豚鼠精神状态良好
#include <bits/stdc++.h> using namespace std; int main(){ int n,m; cin >>n>>m; int a[n+m]; for(int i=0;i<n+m;i++){ cin >> a[i]; }sort(a,a+n+m); for(int i=0;i<n+m;i++){ cout << a[i] << " "; } }
6
bits/stdc++.h
acgoacgo
手持剑,刺锋芒
斜角悲第3冠
h~
136****8557