输入输出,取消同步流
1 2 3 4 5 6 7 8
| #include <bits/stdc++.h> using namespace std; using ll = long long; int main(){ ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); }
|
基于比较的排序与桶排序
【模板】排序
题目描述
将读入的 $N$ 个数从小到大排序后输出。
输入格式
第一行为一个正整数 $N$。
第二行包含 $N$ 个空格隔开的正整数 $a_i$,为你需要进行排序的数。
输出格式
将给定的 $N$ 个数从小到大输出,数之间空格隔开,行末换行且无空格。
样例 #1
样例输入 #1
样例输出 #1
提示
对于 $20%$ 的数据,有 $1 \leq N \leq 10^3$;
对于 $100%$ 的数据,有 $1 \leq N \leq 10^5$,$1 \le a_i \le 10^9$。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #include <bits/stdc++.h> using namespace std;
signed main() { ios::sync_with_stdio(0); int n; cin >> n; vector<int> a(n, 0); for(int i = 0;i < n; ++ i) cin >> a[i]; sort(a.begin(), a.end()); for(int i = 0; i < n; ++i) cout << a[i] << " \n"[i == n-1]; return 0; }
|
【深基9.例1】选举学生会
题目描述
学校正在选举学生会成员,有 $n$($n\le 999$)名候选人,每名候选人编号分别从 $1$ 到 $n$,现在收集到了 $m$($m \le 2000000$)张选票,每张选票都写了一个候选人编号。现在想把这些堆积如山的选票按照投票数字从小到大排序。
输入格式
输入 $n$ 和 $m$ 以及 $m$ 个选票上的数字。
输出格式
求出排序后的选票编号。
样例 #1
样例输入 #1
1 2
| 5 10 2 5 2 2 5 2 2 2 1 2
|
样例输出 #1
桶排序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #include <bits/stdc++.h> using namespace std; const int N = 2e6 + 9; int a[N];
signed main() { ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); int n,m;cin >> n >> m; for(int i = 1;i <= m; ++ i){ int x;cin >> x; a[x] ++; } for(int i = 1;i <= n; ++ i){ for(int j = 1;j <= a[i]; ++ j){ cout<< i << " "; } } return 0; }
|
暴力枚举与优化