hdu 1214 圆桌会议

题目链接:点击打开链接


将长为n的圆环分为两段,如果n是偶数就分为两段等长的,是奇数就分为长度相差1的,把这两段分别反序就行了,对每一段反序需要操作的次数是n*(n-1)/2


开始理解错题了


#include <iostream>
#include <cstdio>
using namespace std;

int solve(int n){
    int half=n/2;
    int res=0;
    if(n&1){
        res+=half*(half-1)/2;
        res+=half*(half+1)/2;
    }
    else res=half*(half-1);
    return res;
}

int main(){
    int n;
    while(cin>>n){
        cout<<solve(n)<<endl;
    }
    return 0;
}


你可能感兴趣的:(hdu 1214 圆桌会议)