摘要:
给定一个有 n 个节点和 m 条有向边的图。每个节点上有一个小写字母。 我们将路径的值定义为最经常出现的字母的数目。例如,如果路径上的字母是 “abaca”,那么该路径的值是 3。 你的任务是找到一条值最大的路径,并将这条路径的值输出。 显然条件是必须在一条路径上,容易想到限制要求拓扑排序,因此可以 阅读全文
摘要:
给定一个火车的入站顺序,问是否可能以规定的顺序出站。 背景实际上是卡特兰数。 可以联想到用栈和队列来模拟这一过程。 如果进栈的过程中发现和队首相同就让他出栈。 string s1, s2; int main() { int n; while (cin >> n) { cin >> s1 >> s2; 阅读全文
摘要:
每个字母都有价值,A的价值是1,B的价值是2,Z的价值是26。现给定26个字母的数量,问能凑到总价值<=50的单词的方案数是多少。 注意HDU , UDH属于相同的单词。 形式上,普通型母函数用于解决多重集的组合问题, 指数型母函数用于解决多重集的排列问题。 此题用普通型母函数求解。 构造母函数 于 阅读全文
摘要:
给定一个字符串,问其能通过重新排列生成多少不同的回文串。 显然只需要考虑一边就好了,考虑一边实际上就是多重集的全排列问题。 ll f[505]; void init() { f[0] = 1ll; for (int i = 1; i <= 500; i++) f[i] = f[i - 1] * i 阅读全文