zoukankan      html  css  js  c++  java
  • codeforces911D Inversion Counting 求逆序数+小trick

    题意:

    给你一个1——N的排列,有M次询问,每次询问给出l,r也就是reverse[l,r]区间后,逆序对是奇数个还是偶数个。

    题解:

    这个题暴力是不行的。

    我们考虑最先求出的逆序数有res个,然后进行转移。我们假设reverse后这段区间新得到了tmp个逆序对,而除此之外的其他区间的逆序对个数不受影响。那么

    res=res+tmp-(len*(len-1)/2 - tmp)

          =res+2*tmp-len*(len-1)/2

    那么我们是不是只要算出tmp就行了呢?

    根本不用,tmp*2根本不改变奇偶性!

    对这些东西要敏感啊。

    1.加上一个偶数不改变奇偶性。

    2,加上一个数与减去一个数奇偶性相等。

  • 相关阅读:
    设计模式
    设计模式
    设计模式
    JS | Reduce
    JS | 数组的深拷贝与浅拷贝
    JS | 数组操作
    Lodash | 指定路径对Object操作
    Git | 场景总结
    ES6 Class
    SpringBoot | Jpa @Id @GeneratedValue
  • 原文地址:https://www.cnblogs.com/sun-yinkai/p/8149531.html
Copyright © 2011-2022 走看看