摘要:
题意:一条有向树,选择一个节点为根的话需要把朝向它的所有边都反转 ,问你最少需要反转几条边,选择那几个为根。解题思路:树形DP,先统计从下而上,然后再自上而下。解题代码: 1 // File Name: 219d.cpp 2 // Author: darkdream 3 // Created Tim... 阅读全文
摘要:
题意:给你一连串字符串,问你下一个字符串尾字母等于前一个字符首字母,最后一个字符串尾字母等于首串首字母,这样的构造出的字符串最长为多少。解题思路:dp[i][j] 表示以 i 字母开头 j 字母结尾 的最长字符串。解题代码: 1 // File Name: 191a.cpp 2 // Author:... 阅读全文
摘要:
题意:给你一个数列,问你其中最长波形子序列(a,b,a,b,a,b这样)最长为多少.解题思路:找到pre[i][j],就是 在 i 前面 且等于 a[i] 且离 i最近的值, dp[i][j] = dp[j][pre[j][i]] + 1;解题代码: 1 // File Name: 255c.cpp... 阅读全文
摘要:
题意:给你一个1-n不重复的 k个排列,让你求最长公共子序列解题思路:1)拓扑排序 + DP 这里可以知道,最长公共子序列必须满足里面 前后的字母 必须在任意一个序列里面都保持前后关系,所以我们可以把前后关系看成一条边。那么问题就装换成了在 有向无环图中求 最长路 ,这个问题可以用拓扑排序来解决... 阅读全文
摘要:
题意:大概是求前n个数的最大公倍数。解题思路:筛法+质因子分解,敲玩就去睡觉了,没想到没优化被cha了。。。解题代码: 1 // BEGIN CUT HERE 2 /* 3 4 */ 5 // END CUT HERE 6 #line 7 "ThePermutationGame.cpp... 阅读全文