摘要:
题意有点儿绕? 容易发现,题意相当于在说,如果某一格有水,那么 ban 掉上一行后,让与其连同的所有格子被画上水。 所以我们从上到下枚举行,依次 ban 掉每一行,然后数连通块个数即可。 需要注意的是不连通的部分答案应该相乘,连通的部分答案应该相加。 但是这样做是 \(O(n^2m)\) 的,需要优 阅读全文
摘要:
思维僵化了,习惯按照右端点排序,没想到是按照左端点排序。。。 考虑从左到右依次加入线段,考虑贡献。 设前 \(i\) 条线段的答案为 \(dp[i]\)。 考虑两种情况: 不加,贡献为 \(dp[i-1]\) 加,首先贡献有 \(dp[i-1]\),还有可能额外多出连通块。 考虑哪些集合会多出连通块 阅读全文
摘要:
很容易想到容斥,计算不包含质数的方案数和总方案数。 设 \(f[n][i]\) 表示长度为 \(n\) 的序列,每个元素的和对 \(p\) 取模的结果。 容易有 \(f[n][i]=\sum_{j=0}^pf[n-1][i-j\bmod p]\times g[j]\),\(g[j]\) 代表选出的数 阅读全文
摘要:
厉害。 对于每一列选的数最多占一半,我们得设计一个三维 DP。然而状态刚好够,但是转移明显炸了(而且似乎还需要多项式?) 考虑正难则反,DP 不合法的方案数。总方案数很好算。 发现不合法的方案数只有某一列的出现次数超过一半,直接枚举这一列。设当前列为第 \(k\) 列。 设 \(dp_{i,x,y} 阅读全文