SRM 601

ORZ芒果爷!!!!!http://blog.csdn.net/merlininice/article/details/17496799

250pt : 刚睡醒就打开题目,题目都看不懂,最后才180分。。

500pt 不会,逗逼了整场。。


update:    //////////////////////补题///////////////////////////////

500pt:

一开始又看错题了。。题目意思实际上是问有多少的这样的两个不相交的集合Aset Bset,使得Aset的异或和小于Bset的异或和

如果嗅觉够敏锐,观察到那个最重要的性质就ok了。

性质就是(其实很显然):两个数的大小是从高到低第一次不同的位区分出来的

所以现在只需要枚举这一位就好了

假设枚举的那一位为r

f[i][j][k]表示前i个数,Aset与Bset的异或和为j,Aset的第r位为k(0,1)的方案数

转移的话只需要枚举当前的数放Aset或Bset或都不放

https://github.com/becauseofyou/Contests/tree/master/Topcoder/srm601

你可能感兴趣的:(SRM 601)