2016_1_27
今天做题的顺序是321,但是第三题的暴力应该是可以拿60分的,我只拿了20分, 现在我写的一条链的情况还是RE着呢,所以我应该果断写上链剖的20分,这样40分应该是比较稳的,也可因为一题和二题更多的空间。然后我写的是第二题,这道题马马虎虎我没怎么看啊。但是现在感觉还是可做的。
我就重点讲讲第二题吧,等会再调,这道题假设我们把1`N都加入我们要选的树,然后我们发现有些质数的次幂是奇数次的,所以这些质数我们要去掉一次,所以这道题就转换成我们得到了一堆互不相同的质数,然后我们要从中分组选出一些使得每一组都不大于n的方案数。这样的话我们可以先分组,分成大于根号N的是一组,小于的是一组,显然大于的这一组分组时不能放到一起,所以我们定义DP状态:DPi,j表示我们当前选到了第I个大质数,还需要选的小质数的集合是j,因为这里j<=2^16。考虑转移我们就是可以枚举出j的子集,转移到i+1,s',最后的DPi+1,0就是我们的答案。
然后第一题我暂时觉得不是很适合我,说说第三题。
第三题应该是为我提供了一个写题的顺序,我应该先把BZ上面的那几道平衡树A掉,然后再写这道题,就是链剖套一个SPLAY,想想还是可做的,代码可能有点长,我写的暴力都有7KB
第一题不管了。