• CF911D Inversion Counting


    题目链接:http://codeforces.com/contest/911/problem/D

    知识点:  暴力

    解题思路:

      先暴力算出所有的逆序对数,得出原始的奇偶性。

      对于每一次倒置,不难发现:非逆序对和逆序对会互相转化,原来的非逆序对会变成逆序对,逆序对会变成非逆序对。所以,如果倒置的区间中有奇数个数对,那么逆序对数的奇偶性会变换,导致整体的奇偶性变换;否则整体奇偶性不变。

    AC代码:

     1 #include <bits/stdc++.h>
     2 
     3 using namespace std;
     4 const int maxn = 1510;
     5 int a[maxn];
     6 int main(){
     7     int n;
     8     scanf("%d",&n);
     9     for(int i=1;i<=n;i++)   scanf("%d",&a[i]);
    10     int have=0;
    11     for(int i=1;i<=n;i++){
    12         for(int j=i+1;j<=n;j++){
    13             if(a[i]>a[j])   have++;
    14         }
    15     }
    16     bool odd;
    17     if(have%2==1)   odd=true;
    18     else    odd=false;
    19     int m,l,r;
    20     scanf("%d",&m);
    21     for(int i=0;i<m;i++){
    22         scanf("%d%d",&l,&r);
    23         int shu=r-l+1;
    24         int dui=shu*(shu-1)/2;  //求出数对数
    25         if(dui%2==1)    odd=!odd;
    26         if(odd) printf("odd
    ");
    27         else    printf("even
    ");
    28     }
    29     return 0;
    30 }
    “这些年我一直提醒自己一件事情,千万不要自己感动自己。大部分人看似的努力,不过是愚蠢导致的。什么熬夜看书到天亮,连续几天只睡几小时,多久没放假了,如果这些东西也值得夸耀,那么富士康流水线上任何一个人都比你努力多了。人难免天生有自怜的情绪,唯有时刻保持清醒,才能看清真正的价值在哪里。”
  • 相关阅读:
    Cesium视角
    Cesium删除特定的实体
    cesium之CLAMPED
    JavaScript:使用setAttribute()改变网页中标签的onclick属性
    atoi()函数及其实现
    寻找数组中的第二大数
    字符串函数之strcpy
    互换两个变量(不使用中间变量)
    寻找兄弟单词(2012.5.6百度实习)
    大数据量的存储分表常见算法(转)
  • 原文地址:https://www.cnblogs.com/Blogggggg/p/8447742.html
Copyright © 2020-2023  润新知