竞赛
考级
zsy
思路:数据范围最大是1E6,所以我们的排序方式复杂度最好在O(NLOGN)O(N\LOG{N})O(NLOGN)以下。 方法一(危): 为什么写“危”呢?因为快排的不稳定性。差点TLE,但是也能过(注意数组范围): 方法二(懒人福利): C++的内置函数SORT刚好满足需求,所以用SORT也行: 方法三:归并 直接归并的版一套就好 时间复杂度O(NLOGN)O(N\LOG{N})O(NLOGN) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 方法四(堆排): 直接上模版 本代码优化过,时间复杂度为O(MLOGN)O(M\LOG{N})O(MLOGN)
༺དༀ༒∞░∞༒ༀཌ༻
4. 激活密钥 思路分析 本题又考排序了。只需要将数组进行倒序,然后输出前m大的即可。将数组倒序,可以采用C++中的sort,写一个cmp函数即可。 代码分析
桌子乱的反义词
这题的题解我放链接里了链接
【铁爪】烈焰特劳斯
#include<bits/stdc++.h> using namespace std; int n , m , a[1000010]; bool cmp(int x , int y){ return x > y; } int main(){ cin >> n >> m; for(int i=1;i<=n;i++){ cin >> a[i]; } sort(a+1,a+n+1,cmp); for(int i=1;i<=m;i++){ cout << a[i] << " "; } return 0; }
150****9982
#include<bits/stdc++.h> using namespace std; long long a[1020900]; bool cmp(int x,int y){ return x>y; } int main(){ long long n,m; cin>>n>>m; for(int i=0;i<n;i++){ cin>>a[i]; } sort(a,a+n,cmp); for(int i=0;i<m;i++){ cout<<a[i]<<' '; } return 0; }
智慧达达(1)
skirmish
————————防透视————————————————防透视————————————————防透视————————————————防透视————————————————防透视————————————————防透视————————————————防透视————————————————防透视————————————————防透视————————————————防透视————————————————防透视————————————————防透视————————————————防透视————————————————防透视————————————————防透视————————————————防透视————————————————防透视————————————————防透视————————————————防透视————————————————防透视————————————————防透视————————
天之神_复仇者_张景翔
#include <bits/stdc++.h> using namespace std; int cmp(int left,int right){ return left > right; } int a[1000010]; int main(){ int n,m; cin >> n >> m; for(int i = 1;i <= n;i++){ cin >> a[i]; } sort(a + 1,a + n + 1,cmp); for(int i = 1;i <= m;i++){ cout << a[i] << " "; } return 0; }
SSCD刹
#include <bits/stdc++.h> using namespace std; int main(){ int a,b,n[1000005]={}; cin >> a >> b; for(int i=0;i<a;i++){ cin >> n[i]; } sort(n,n+a); for(int i=a-1;b;b--,i--){ cout << n[i] << " "; } return 0; }
181****2800
提交答案之后,这里将显示提交结果~