随笔分类 - 动态规划 优化 其它优化
摘要:【题意】n个点等距排列在长度为n-1的直线上,初始点1~k都有一辆公车,每辆公车都需要一些停靠点,每个点至多只能被一辆公车停靠,且每辆公车相邻两个停靠点的距离至多为p,所有公车最后会停在n-k+1~n。给定n,k,p,求满足要求的方案数%30031。n<=10^9,k<=p<=10。 【算法】状压D
阅读全文
摘要:【题目】C. Sonya and Problem Wihtout a Legend 【题意】给定n个数字,每次操作可以对一个数字±1,求最少操作次数使数列递增。n<=10^5。 【算法】动态规划+前缀和优化 【题解】★令b[i]=a[i]-i,则a[i]递增等价于b[i]不递减。 这样做之后,显然数
阅读全文
摘要:【题意】求从字符串A中取出k个互不重叠的非空子串顺序拼接形成B的方案数。n<=1000,m<=100,k<=m。 【算法】动态规划 【题解】这题主要是将从i-l转移变成从i-1转移,从而省略l这一维的枚举(等价于记录前缀和,将信息顺序传递过来)。 f[i][j][k]表示字符串A到i,字符串B到j,
阅读全文
摘要:【题意】给定只含小写字母的字符串,要求分割成若干段使段内字母重组顺序后能得到回文串,求最少分割段数。n<=2*10^5 【算法】DP 【题解】关键在于快速判断一个字符子串是否合法,容易发现合法仅当不存在或只存在一个奇数字符,其余字符均为偶数。 当涉及到奇偶性(%2)时,很自然能想到异或。 将小写字母
阅读全文
摘要:【题意】给定一排n根杆高度hi,一个常数C,杆升高x的代价为x^2,相邻两杆之间架设电话线代价为高度差*C,求总代价最小。 【算法】DP+辅助数组优化 【题解】令f[i][j]表示第i根杆高度为j的最小代价。 f[i][j]=min(f[i-1][k]+C*|j-k|+(a[i]-j)^2)。复杂度
阅读全文
摘要:【算法】DP+数学优化 【题意】把n个1~m的数字分成k段,每段的价值为段内不同数字个数的平方,求最小总价值。n,m,ai<=40000 【题解】 参考自:WerKeyTom_FTD 令f[i]表示把前i个数分成若干段的最小价值。 转移中我们定义,从i开始往前到有j个不同的数的最小位置为b[j]。
阅读全文
摘要:【算法】动态规划DP 【题解】 题目要求不严格递增或不严格递减。 首先修改后的数字一定是原来出现过的数字,这样就可以离散化。 f[i][j]表示前i个,第i个修改为第j个数字的最小代价,a表示排序后数组,b表示原数组。 f[i][j]=min(f[i-1][k])+abs(b[i]-a[j]) mi
阅读全文
摘要:【动态规划杂记】状态+转移 参考:夜深人静写算法(二) - 动态规划 核心:划分阶段-状态表示-状态转移方程。 复杂度:状态数O(n^t),转移O(n^e),则称为tD/eD问题。 1.最优化问题和方案数问题常考虑DP,特定数问题不考虑DP。 2.断层思想:划分状态,从计算过的状态去答案,这就是无后
阅读全文
摘要:【算法】 【算法】网络流 【算法】树 【算法】数学 ————【专题】生成树计数(矩阵树定理) ————【专题】计数问题(排列组合,容斥原理,卡特兰数) ————【算法专题】卡特兰数(计数数列) ————【专题】数论 ————【专题】概率和期望 【算法】动态规划 【算法】数据结构 ————【专题】平衡
阅读全文