2020.09.05【NOIP提高组】模拟总结

估分:10+100+0+0=110

实际:10+100+15+70=195

今天只打各种暴力水法水分。

来到考场已经是9点了,看完题10点10分,一题都没有思路。

T1   1006. 【SHOI2008】循环的债务

没有思路,直接输出了无解。

正解是dp或者类A*估价函数搜索剪枝

发现三人互相欠的钱可以抵消,所以首先想到只需将三个人欠对方的钱相等即可(x1=x2=x3)。

那么就先可以将所有人的钱都减去min(x1,x2,x3)。

三人总钱数是固定的,那么只需记录前两个人的钱数,第三个人一减就得到了。

设f[ i ][ j ][ k ] 表示做到面值为 i 的钱,A手中有j元,B手中有k元,所需要最小交换的钱的数量(的两倍)。

那么对于每一种面值,将所有的个数分配到三个人手中,即A拿ta个,B拿tb个,则C剩下tot-ta-tb个,就直接可以转移了。

注意转移时的代价是 手中钱数的变化值,若A给了B1张钞票,那么A的变化值为1,B的变化值也为1,实际上转移了1张钞票,

所以f [ 6 ][ 还完钱后A的总钱数 ][ 还完钱后B的总钱数 ] 除以2就是我们要的答案了。

T2  1111. 【SHOI2008】汉诺塔

水法正解偏分。

暴力20分。

按照优先级顺序暴力。

设f[ i ]表示将1~i号盘子全部按顺序叠放到同一个柱子的步数。

将f[1~3]找出来,f一定满足f[ i ]=f[ i-1 ]*A+B,计算出A、B,后面的直接递推即可。

T3  3224. 【HBOI2013】Eden的博弈树

只需要考虑叶子结点是否存在于黑色或白色的集合中即可。

设f[ i ][0/1]表示第i个点黑色/白色必胜的最小需要的必胜叶节点数。

分类讨论一下,

f[i][a]=min(f[son][a])

f[i][b]=\sum_{son}f[son][b]

最后对于黑色白色的点分开处理。

对于第一种转移的,搜索所有与最小值相等的儿子。

对于第二种转移的,所有所有儿子。

当搜索到叶子结点时将标记+1,对于标记为2的叶子结点就是关键点。

 

T4  1008. 【SHOI2008】仙人图(II)

直接按照树来做70分。

实际上用圆方树重构之后单调队列优化dp即可。

 

你可能感兴趣的:(总结,总结)