随笔分类 - /* 圣人不死 AC不止!*/
coding不息!
摘要:题目传送门 1 /* 2 递推DP: dp[i] 表示放i的方案数,最后累加前n-2的数字的方案数 3 */ 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 const int MAXN ...
阅读全文
摘要:题目传送门 1 /* 2 题意:1~1e9的数字里,各个位数数字相加和为s的个数 3 递推DP:dp[i][j] 表示i位数字,当前数字和为j的个数 4 状态转移方程:dp[i][j] += dp[i-1][j-k],为了不出现负数 5 ...
阅读全文
摘要:题目传送门 1 /* 2 题意:n个程序员,每个人每行写a[i]个bug,现在写m行,最多出现b个bug,问可能的方案有几个 3 完全背包:dp[i][j][k] 表示i个人,j行,k个bug dp[0][0][0] = 1 表示不选择人的时候所有的bug的种类犯错误都只有一种...
阅读全文
摘要:题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以是这样的: 6 LSLSL 7 ...
阅读全文
摘要:题目传送门 1 /* 2 题意:一个字符串分割成k段,每段开头字母不相同 3 水题:记录每个字母出现的次数,每一次分割把首字母的次数降为0,最后一段直接全部输出 4 */ 5 #include 6 #include 7 #include 8 #include 9 #inclu...
阅读全文
摘要:题目传送门 1 /* 2 最大子矩阵和:把二维降到一维,即把列压缩;然后看是否满足最大连续子序列; 3 好像之前做过,没印象了,看来做过的题目要经常看看:) 4 */ 5 #include 6 #include 7 #include 8 #include 9 using na...
阅读全文
摘要:题目传送门 1 /* 2 题意:已知起点(1,1),终点(n,m);从一个点水平或垂直走到相邻的点距离+1,还有k个抄近道的对角线+sqrt (2.0); 3 递推DP:仿照JayYe,处理的很巧妙,学习:) 4 好像还要滚动数组,不会,以后再补 5 */ 6 #includ...
阅读全文
摘要:题目传送门题意:中文题面分析:LCIS应用:设置b[]为a[]的反转,然后LCIS,若相等的是自己本身,则+1, 否则+2代码:#include #include #include #include using namespace std;const int MAXN = 2e2 + 10;cons...
阅读全文
摘要:题目传送门 题意:n位数,k进制,求个数分析:dp[i][j] 表示i位数,当前数字为j的个数;若j==0,不加dp[i-1][0];代码1:#include #include #include #include using namespace std;const int MAXN = 22;con...
阅读全文
摘要:题目传送门 1 /* 2 1 r; 2 b; 3 w 3 2不能在最前面,所以dp[1] = 2; dp[2] = 2: 13 or 31 4 5 dp[i] = dp[i-1] + dp[i-2]; 6 只加1或3时,总数dp[i-1]; 只加12或3...
阅读全文
摘要:题目传送门题意:求单词的最长公共子序列,并要求打印路径分析:LCS 将单词看成一个点,dp[i][j] = dp[i-1][j-1] + 1 (s1[i] == s2[j]), dp[i][j] = max (dp[i-1][j], dp[i][j-1])代码:#include #include #...
阅读全文
摘要:题目传送门题意:中文题面分析:LIS模板题:n - 最长下降子序列 -> 最长上升子序列 贪心做法以后再补:)代码:#include #include #include #include #include using namespace std;const int MAXN = 1e4 + 10;...
阅读全文
摘要:题目传送门题意:LCIS(Longest Common Increasing Subsequence) 最长公共上升子序列分析:a[i] != b[j]: dp[i][j] = dp[i-1][j];a[i]==b[j]: dp[j]=max(dp[j],dp[k]); (1#include #in...
阅读全文
摘要:题目传送门 1 /* 2 拓扑排序裸题:有三种情况: 3 1. 输入时发现与之前的矛盾,Inconsistency 4 2. 拓扑排序后,没有n个点(先判断cnt,即使一些点没有边连通,也应该是n,此时错...
阅读全文
摘要:题目传送门 1 /* 2 题意:无向图和有向图的混合图判环; 3 4 官方题解:首先对于所有的无向边,我们使用并查集将两边的点并起来,若一条边未合并之前, 5 两端的点已经处于同一个集合了,那么说明必定存在可行的环(因为这两个点处于同一个并查集集合中,那么它们之间...
阅读全文
摘要:题目传送门 1 /* 2 递推DP:官方题解 3 令Fi,j代表剩下i个人时,若BrotherK的位置是1,那么位置为j的人是否可能获胜 4 转移的时候可以枚举当前轮指定的数是什么,那么就可以计算出当前位置j的人在剩下i − 1个人时的位置 5 ...
阅读全文
摘要:题目传送门 1 /* 2 数学:官方题解 3 首先,数组中每个元素至少是1 4 然后对于任意一个询问Li, Ri, Ansi, 说明Li ~ Ri中的元素必定是Ansi的倍数,那么只需将其与Ansi取最小公倍数即可 5 如果在计算过程中有一个值...
阅读全文
摘要:题目传送门 1 /* 2 贪心:官方题解: 3 首先我们考虑如何选择最左边的一个区间 4 假设最左边的区间标号是i, 那选择的另外两个区间的左端点必定要大于Ri 5 若存在i之外的j, 满足Rj16 #include 17 #include 1...
阅读全文
摘要:题目传送门 1 /* 2 题意:告诉起点终点,踩一次, '.'变成'X',再踩一次,冰块破碎,问是否能使终点冰破碎 3 DFS:如题解所说,分三种情况:1. 如果两点重合,只要往外走一步再走回来就行了;2. 若两点相邻, 4 那么要不就是踩一脚就破了或者踩一脚走开再走...
阅读全文
摘要:题目传送门 1 /* 2 贪心:首先要注意,y是中位数的要求;先把其他的都设置为1,那么最多有(n-1)/2个比y小的,cnt记录比y小的个数 3 num1是输出的1的个数,numy是除此之外的数都为y,此时的numy是最少需要的,这样才可能中位数大于等于y 4 */...
阅读全文

浙公网安备 33010602011771号