CROC 2016 - Elimination Round Mischievous Mess Makers

  这个题的意思是给你一个自然数序列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\n", res1+res2);
    cout<<res1+res2<<endl;
    return 0;
}

 

posted @ 2016-03-23 10:04  xing-xing  阅读(152)  评论(0编辑  收藏  举报