Skip to content
phonism edited this page Nov 11, 2020 · 7 revisions

SRM div1 easy 版切!

  • SRM709:Xscoregame ⭐ ⭐ ⭐
    • 题意:给一个数组A,对于A的某个排列,执行下列操作。x初始化为0,$$x = (x + (x\ xor\ a_i))$$,问如何排列A使得最终的x值最大,最大值是多少。
    • 题解:注意到直接状压dp不行,因为当前最大的不代表转移到下一个状态还是最大。但是考虑到数字大小最多50,操作是异或,对于超过1<<6的部分其实不会有变化,所以可以用dp[s][t]来表示状态s的时候,且结果后6位是t的最大的x是多少,然后直接转移。
    • 代码:https://github.com/phonism/notes/blob/master/AlgorithmQuestions/TopCoder/SRM709_DIV1_EASY.cpp

Prepare my interview!

Clone this wiki locally