CROC 2016

  这个题的意思是给你一个自然数序列1-n, 然后让你交换其中的一些数使得新序列的逆序对个数最大,  直接推公式即可, 代码如下:

#include <bits/stdc++.h>

using namespace std;
typedef long long LL;

int main() {
    int n, k;
    scanf("%d%d", &n, &k);
    LL pa = min(n/2, k);
    LL res1 = (n-2*pa)*pa;
    LL res2 = (pa-1)*pa/2 + (2*n-1-pa)*pa/2;
//    printf("%d
", res1+res2);
    cout<<res1+res2<<endl;
    return 0;
}
原文地址:https://www.cnblogs.com/xingxing1024/p/5309856.html