zoukankan      html  css  js  c++  java
  • 【Educational Codeforces Round 35 D】Inversion Counting

    【链接】 我是链接,点我呀:)
    【题意】

    在这里输入题意

    【题解】

    排列中交换任意两个数字。 排列的逆序对个数的奇偶性会发生变化。 翻转这个过程其实就是len/2对数字发生交换。 交换了偶数次的话,不变,否则奇偶性发生改变。 先暴力求出一开始的逆序对个数就好

    【代码】

    #include <bits/stdc++.h>
    using namespace std;
    
    const int N = 1500;
    
    int n,a[N+10],cnt,now,m;
    
    void out(int x){
        if (x==1)
            cout <<"odd"<<endl;
        else
            cout <<"even"<<endl;
    }
    
    int main(){
    	#ifdef LOCAL_DEFINE
    	    freopen("rush_in.txt", "r", stdin);
    	#endif
    	ios::sync_with_stdio(0),cin.tie(0);
    	cin >> n;
    	for (int i = 1;i <= n;i++) cin >>a[i];
        for (int i = 1;i <= n;i++)
            for (int j = i+1;j <= n ;j++)
                if (a[i]>a[j]) cnt++;
        now = cnt&1;
        cin >> m;
        for (int i = 1;i <= m;i++){
            int x,y;
            cin >> x >> y;
            if (x==y)
                out(now);
            else{
                int len = y-x+1;
                len/=2;
                if (len&1) now = now ^1;
                out(now);
            }
    
        }
    	return 0;
    }
    
  • 相关阅读:
    作为产品经理为什么选择开源GIS
    arcpy自动发布服务02
    rclone
    MinIO+Keepalived+Nginx
    Mysql-用户管理
    docker-compose
    docker-制造镜像
    docker-数据卷
    docker-容器操作
    docker-镜像操作
  • 原文地址:https://www.cnblogs.com/AWCXV/p/8143551.html
Copyright © 2011-2022 走看看