摘要: 真的是很有趣的游戏。。。 对每个单词构建好AC自动机后,由于单词都是相同长度的且不同,所以不会出现互相为子串的形式。 那么我们对AC自动机上的节点构建转移矩阵。对于每个单词末尾的节点。该节点的出边仅仅与自己相连且概率为1. 表示如果已经出现了该单词游戏就结束了。答案是收敛的,我们对这个矩阵迭代个2^ 阅读全文
posted @ 2017-04-28 19:36 free-loop 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 跑了7000ms。。。 这是个体积和价值都超大的背包。但是体积保证为a*2^b的(a<=10,b<=30)形式.且n<=100. 于是可以想到按b来分组。这样的话每组最多为a*n*2^b的体积。把每个分组进行一次01背包。 令dp[i][j]表示体积为j*2^i+w&(1<<i)的最大价值。再把每个 阅读全文
posted @ 2017-04-28 16:36 free-loop 阅读(210) 评论(0) 推荐(1) 编辑
摘要: 显然每个位置只有两个情况,所以用二分图最大匹配来求解。 如果二分图有完全匹配,则有解。 关键是如何求最小的字典序解。 实际上用匈牙利算法从后面开始找增广路,并优先匹配字典序小的即可。 # include <cstdio> # include <cstring> # include <cstdlib> 阅读全文
posted @ 2017-04-28 15:01 free-loop 阅读(202) 评论(0) 推荐(0) 编辑