摘要: Little Pony and Harmony Chest 题解: 因为 1 <= ai <= 30 所以 1 <= bi <= 58, 因为 59 和 1 等效, 所以不需要59。 [1, 58]只有16个质数,对于这16个质数去状压。 对于1->58的数,我们计算出每个数对于质数来说的状态,然后 阅读全文
posted @ 2019-05-08 23:14 Schenker 阅读(246) 评论(0) 推荐(0) 编辑
摘要: Ant colony 题解: 因为一个数是合法数,那么询问区间内的其他数都要是这个数的倍数,也就是这个区间内的gcd刚好是这个数。 对于这个区间的gcd来说,不能通过前后缀来算。 所以通过ST表来询问这个区间的gcd。 那么题目就变成了询问一个区间内有多少个k。 我们对于每个数都离散化之后,在相应的 阅读全文
posted @ 2019-05-08 22:08 Schenker 阅读(151) 评论(0) 推荐(0) 编辑
摘要: int Log[N]; struct ST { int dp[N][20], a[N]; void init(int n) { for(int i = -(Log[0]=-1); i < N; i++) Log[i] = Log[i - 1] + ((i & (i - 1)) == 0); for( 阅读全文
posted @ 2019-05-08 22:01 Schenker 阅读(108) 评论(0) 推荐(0) 编辑
摘要: Appleman and Tree 题解: 定义dp[u][1] 为以u的子树范围内,u这个点已经和某个黑点相连的方案数。 dp[u][0] 为在u的子树范围内, u这个点还未和某个黑点相连的方案数。 转移方程: 如果 u为黑点, dp[u][0] = 0, dp[u][1] = 1, 然后考虑从下 阅读全文
posted @ 2019-05-08 15:44 Schenker 阅读(181) 评论(0) 推荐(0) 编辑