摘要:
http://codeforces.com/problemset/problem/111/D 中等偏难的计数题目,题意很奇葩,用K种颜色染一个n*m的矩形使得从竖直方向任意位置切成两个矩阵时两个子矩阵包含颜色种类数目一样多,当然要沿着网格线切。非常奇葩的题意,后来仔细一想发现这个要求可以证明等同于这个条件,最左最右列包含颜色种类数目一样多同时中间列出现的颜色只能是最左最右同时出线过的颜色。证明略,知道结论后反证异常简单,推出结论比较难。 综上,做法很easy,枚举左右都出现的颜色数目i,已经单独出现的颜色(对方没用的)颜色数j , ans = sum(dp[i+j]*dp[i+j]*C(k,i 阅读全文