根据题意可以推出在排列中将出现次数最多的地方放上最大的数,剩下的依次递减。要计算每个位置出现的位置,依据数据范围,暴力模拟会WA,简单差分一下就可以了。代码如下: #include<iostream> #include<algorithm> using namespace std; int a[200010]; bool cmp(int a, int b) { return a > b; } int main() { int n, m; cin >> n >> m; while (m--) { ...