随笔分类 - DP
摘要:题目链接 题意: 给n长度的S串,对于0<=i<=|S|,有多少个长度为m的T串,使得LCS(S,T) = i。 思路: 理解的不是很透彻,先占个坑。
阅读全文
摘要:题目链接 XOR 游戏 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 256 Accepted Submission(s): 86 Proble
阅读全文
摘要:最短路+拆点 A As long as Binbin loves Sangsang 题意:从1走到n,每次都是LOVE,问到n时路径是连续多个"LOVE"的最短距离.秀恩爱不想吐槽. 分析:在普通的最短路上有寻路的限制,把一个点看成4个点,表示通过某一个字符到该点的最短距离.注意自环的处理,还有距离
阅读全文
摘要:数学 A - Infinite Sequence 等差数列,公差是0的时候特判 数学 B - Restoring Painting 题意:3*3的矩阵,已经填了a,b,c,d四个数字,问填完数后四个2*2的子矩阵的和相等的方案数,所有数字范围在[1, n]. 分析:蛮有意思的题目,很明显中心的数字是
阅读全文
摘要:题目链接 前面全是0的情况特判
阅读全文
摘要:DP+单调队列优化 E One hundred layer 题意:n*m的矩形,从第一层x位置往下走,每一层都可以往左或往右移动最多k步再往下走,问走到n层时所走路径的最大值. 分析:定义,,注意到max里的东西与j无关,可以定义单调队列维护的最值,注意t的约束条件.往右的情况类似.
阅读全文
摘要:题目链接 题意:定义"beautiful number"为一个数n能整除所有数位上非0的数字 分析:即n是数位所有数字的最小公倍数的倍数。LCM(1到9)=2520。n满足是2520的约数的倍数。dp[len][val][lcm]一维为数的位数,一维为%2520的值(保存原数不可能,也没必要,252
阅读全文
摘要:题目链接 题意:判断小于n的数字中,数位从高到低成上升再下降的趋势的数字的个数 分析:简单的数位DP,保存前一位的数字,注意临界点的处理,都是套路。
阅读全文
摘要:计算几何 A Farmer Greedy 题意:n个点选3个组成三角形,问m个点在三角形内的数字是奇数的这样的三角形个数. 分析:暴力O(N^3*M)竟然能过!我写的搓,加了优化才过掉.正解是先处理出每条线段正下方点的个数,然后枚举每个三角形O(1)计算,cnt[i][j] + cnt[j][k]
阅读全文
摘要:容斥原理 A Number Sequence 题意:给出n个数,b1,b2,b3……bn,构造n个数,a1,a2,……an(ai>1),使得a1*a2*a3……an=b1*b2……bn 分析:容易想到的是将bi分解质因数,然后记录每个质因数的个数。那么题目变成:对于(每个质因数个数为m个划分到n个不
阅读全文
摘要:终于又回到熟悉的Round了 数学 A - Pouring Rain 设个未知数,解方程,还好没有hack点 数学 B - Coat of Anticubism 题意:求增加最小长度的一根木棍,使得构成一个多边形。 分析:那么构成三角形,原来n条木棍分成A,B两边,A和B接近(A<=B),那么另一条
阅读全文
摘要:题目连接 题意:n个数字构建哈夫曼树,问是否存在这样一棵树使得:(Fi数字大小,Ci哈夫曼表示下,'0'的数量) 分析:每次从优先队列取出两个数字可以互换位置,这样可以01互换。设a[i] <= b[i],a[i]为左儿子,b[i]为右儿子,如果加上a[i],表示累加上了a[i]下的所有点在i的位置
阅读全文
摘要:题目链接 题意:给你n个数,按照顺序依次放入一个双端队列(可放在头部,也可以放在尾部),求xi > xi+1的期望 * 2^n mod (1e9 +7) 分析:期望*2^n=出现这种排法的概率*这种排法的desents数*2^n = 1/(2^(n-1)) * 2^n * 每一种排法每一个数的des
阅读全文
摘要:前两题不想写了 数位DP 1003 King's Order 考虑i的后缀有j个连续,转移状态很简单,滚动数组优化(其实不用) 约瑟夫环 1004 King's Game 约瑟夫问题的一个变种,然而题目全部是在唬人,就是一个简单的递推。虽然我知道有人会打表。。。 我们看看裸的约瑟夫是怎么玩的:nn
阅读全文
摘要:题目传送门 题意:要求任意连续子序列中0和1的数量差不超过k的方案数 分析:想好状态其实不难。dp[i][j][k]表示考虑前i长度,后缀中最大的 sum(0) - sum(1) = j, sum (1) - sum (0) = k的方案数,合并以下可以得到最大的|sum(0) - sum(1)|
阅读全文
摘要:暴力 A - Orchestra import java.io.*; import java.util.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner (System.
阅读全文
摘要:题目传送门 题意:训练指南P250 分析:DFS记忆化搜索,范围或者说是图是已知的字串构成的自动机图,那么用 | (1 << i)表示包含第i个字串,如果长度为len,且st == (1 << m) - 1则是可能的。打印与之前相似。 #include <bits/stdc++.h> using n
阅读全文
摘要:居然补完了 组合 A - Far Relative’s Birthday Cake import java.util.*; import java.io.*; public class Main { public static void main(String[] args) { Scanner c
阅读全文
摘要:数学 1001 KK's Steel 类似斐波那契求和 #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <string> #include <vector> #include <m
阅读全文
摘要:在家补补题 模拟 A - Robot Sequence #include <bits/stdc++.h> char str[202]; void move(int &x, int &y, char ch) { if (ch == 'U') x--; if (ch == 'D') x++; if (c
阅读全文