随笔分类 - /* 圣人不死 AC不止!*/
coding不息!
摘要:题目传送门 1 /* 2 题意:给出一系列的01字符串,问最少要问几个问题(列)能把它们区分出来 3 状态DP+记忆化搜索:dp[s1][s2]表示问题集合为s1。答案对错集合为s2时,还要问几次才能区分出来 4 若和答案(自己拟定)相差小于等于1时,证说明...
阅读全文
摘要:题目传送门题意:给一串跳舞的动作,至少一只脚落到指定的位置,不同的走法有不同的体力消耗,问最小体力消费多少分析:dp[i][j][k] 表示前i个动作,当前状态(j, k)的最小消费,状态转移方程:(a[i], k) #include #include #include #include #incl...
阅读全文
摘要:题目传送门 1 /* 2 题意:给出刷墙的所有的方法,求一种顺序,使得原矩阵刷成目标矩阵 3 暴力:(题解)我们只要每次找一行或一列颜色除了0都相同的,然后如果有对应的操作,就把这行这列都赋值成0即可 4 */ 5 /*****************************...
阅读全文
摘要:题目传送门 1 /* 2 模拟:这题没啥好说的,把指针转成角度处理就行了,有两个注意点:结果化简且在0~180内;小时13点以后和1以后是一样的(24小时) 3 模拟题伤不起!计算公式在代码内(格式:hh/120, mm/120, ss/120) 4 */ 5 /******...
阅读全文
摘要:题目传送门 1 /* 2 题意:把N个数分成两组,一组加起来是A,一组加起来是B,113 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include 20 #include 21 #incl...
阅读全文
摘要:题目传送门 1 /* 2 题意:给一个字符串,连续相同的段落可以合并,gogogo->3(go),问最小表示的长度 3 区间DP:dp[i][j]表示[i,j]的区间最小表示长度,那么dp[i][j] = min (dp[j][k] + dp[k+1][i+j-1]), 4 ...
阅读全文
摘要:题目传送门 1 /* 2 题解:选择一个点,它相邻的点都当做被选择,问最少选择多少点将所有点都被选择 3 树形DP:dp[i][0/1]表示当前点选或不选,如果选,相邻的点可选可不选,取最小值 4 */ 5 /*************************************...
阅读全文
摘要:题目传送门 1 /* 2 题意:求形如(2 3 4) (4 3 2) (2 3 4)的最长长度,即两个重叠一半的回文串 3 Manacher:比赛看到这题还以为套个模板就行了,因为BC上有道类似的题,自己又学过Manacher算法,结果入坑WA到死 4 开始写的是判断...
阅读全文
摘要:题目传送门 1 /* 2 题意:题目讲的很清楚:When n=123 and t=3 then we can get 123->1236->123612->12361215.要求t次操作后,能否被11整除 3 同余模定理:每次操作将后缀值加到上次操作的值%11后的后面,有点绕,纸上模...
阅读全文
摘要:题目传送门 1 /* 2 题意:给一个串,只能是0,1,?(0/1)。计算格雷码方法:当前值与前一个值异或,若为1,可以累加a[i],问最大累加值 3 DP:dp[i][0/1]表示当前第i位选择0/1时的最大分数,那么分类讨论,情况太多,看代码,注意不可能的状态不要转移 4 */ ...
阅读全文
摘要:题目传送门 题意:求MCS(最大连续子序列和)及两个端点分析:第一种办法:dp[i] = max (dp[i-1] + a[i], a[i]) 可以不开数组,用一个sum表示前i个数字的MCS,其实是一样的。。。类似DP的做法有个名字叫联机算法。 第二种办法:一个前缀记录前i个数字的和,那么an...
阅读全文
摘要:题目传送门 1 /* 2 题意:学校有在任的老师和应聘的老师,选择一些应聘老师,使得每门科目至少两个老师教,问最少花费多少 3 状压DP:一看到数据那么小,肯定是状压了。这个状态不好想,dp[s1][s2]表示s1二进制表示下至少有1位老师的科目集合 4 s2...
阅读全文
摘要:题目传送门 1 /* 2 题意:问一个串在另一个串出现的次数(可重复) 3 KMP:模板题 4 */ 5 /************************************************ 6 * Author :Running_Time 7 * Cre...
阅读全文
摘要:题目传送门 1 /* 2 题意:求一个串重复出现(>1)的位置 3 KMP:这简直和POJ_2406没啥区别 4 */ 5 /************************************************ 6 * Author :Running_Tim...
阅读全文
摘要:题目传送门 1 /* 2 题意:一个串有字串重复n次产生,求最大的n 3 KMP:nex[]的性质应用,感觉对nex加深了理解 4 */ 5 /************************************************ 6 * Author :Ru...
阅读全文
摘要:题目传送门 1 /* 2 题意:求出一个串的前缀与后缀相同的字串的长度 3 KMP:nex[]就有这样的性质,倒过来输出就行了 4 */ 5 /************************************************ 6 * Author :Ru...
阅读全文
摘要:题目传送门 1 /* 2 题意:id是0的是感染者,和他在同一组的会被感染,问最后被感染的人数 3 并查集:算是入门题吧,考察按秩合并,也就是rk[x]记录x的子节点有多少个,不管往哪合并,最后只要求0在的树上的所有节点就行了 4 */ 5 /********************...
阅读全文
摘要:题目传送门 1 /* 2 01背包(类):dp[i][j][k] 表示从(i, j)出发的和为k的方案数,那么cnt = sum (dp[1][i][s]) 3 状态转移方程:dp[i][j][k] = dp[i+1][j][k-c] + dp[i+1][j+1...
阅读全文
摘要:题目传送门 1 /* 2 题意:抽象一点就是给两个矩阵,重叠的(就是两者选择其一),两种铺路:从右到左和从下到上,中途不能转弯, 3 到达边界后把沿途路上的权值相加求和使最大 4 DP:这是道递推题,首先我题目看了老半天,看懂后写出前缀和又不知道该如何定义状态好,写不...
阅读全文
摘要:题目传送门 1 /* 2 DP:这题赤裸裸的dp,dp[i][1/0]表示第i块板放木桩和不放木桩的方案数。状态转移方程: 3 dp[i][1] = dp[i-3][1] + dp[i-3][0] + 1; dp[i][0] = dp[i-1][1] + dp[i-1][0]...
阅读全文