2022年10月28日
摘要: 和 数字金字塔 几乎一样 f[i[[j][s] s表示当前的和 #include<iostream> #include <cstring> #include <algorithm> using namespace std; const int N=90; #define int long long 阅读全文
posted @ 2022-10-28 22:55 towboat 阅读(20) 评论(0) 推荐(0)
摘要: 一个方格图,每个格子上有 A 矿与 B 矿。A 矿只能向西运输,B 矿只能向北运输。即如果要采某个格子上的矿,那么运输路上的这种矿要全采 转移很明显了 f[i][j][0]=max(f[i-1][j][0],f[i-1][j][1])+s1[i][j]; f[i][j][1]=max(f[i][j- 阅读全文
posted @ 2022-10-28 19:50 towboat 阅读(22) 评论(0) 推荐(0)
摘要: 题目意思还是有点绕的,想了好一会 大体上是一个状压dp(废话 f[j] ,当当前拥有武器集合为j 时,消灭所有怪物的方案数 像线性dp一样,但可以去掉一维 f[j]+=f[t] ,t= j^(1<<i ) 条件是 武器库j 能消灭 怪物i 这就要处理出 g[j] ,表示 武器库 j 能消灭的怪物集合 阅读全文
posted @ 2022-10-28 16:13 towboat 阅读(12) 评论(0) 推荐(0)
摘要: 比如,手机可能位于 5 个区域中,概率分别为 0.3,0.05,0.1,0.3,0.25, 则一种方法是先同时访问 \{c1,c2,c3\},再同时访问 {c_4,c_5}, 访问区域数量的期望为 3*(0.3 + 0.05 + 0.1) + (3 + 2) *(0.3 + 0.25) = 4.1  阅读全文
posted @ 2022-10-28 14:01 towboat 阅读(18) 评论(0) 推荐(0)
摘要: 删去字符串S中的一些字符,使剩下的字符组成最长的回文串(顺序连接) 区间dp f[i][j] f[i][j] = f[i+1][j-1] i==j =min( f[i+1][j] ,f[i][j-1] ) #include<iostream> #include<string> #include <c 阅读全文
posted @ 2022-10-28 12:56 towboat 阅读(24) 评论(0) 推荐(0)
摘要: 给你一个长度 k ,一个字符串 S(都为小写字母) ,保证 S 的长度为 k的整数倍。 将 S 按顺序分为 S/k 组,组内字符可以重新排列 问最少有几个块?(如 fff,ww ) 枚举开头元素j ,上一个组的末尾元素r f[i[j] = min{ f[i-1][r] - 1 +count[i] } 阅读全文
posted @ 2022-10-28 11:01 towboat 阅读(18) 评论(0) 推荐(0)
摘要: 给一个序列A,求一个最长子序列,长度为2k+1 满足前k+1个数递增,后k个递减 LIS板子题,正反各求一次,枚举中间的交点 #include<iostream> #include<cstring> #include <algorithm> using namespace std; const in 阅读全文
posted @ 2022-10-28 10:06 towboat 阅读(17) 评论(0) 推荐(0)
摘要: 给定一个长度为 n1​ ( n1​≤100 ) 的点的无向连通图和一个长度为 n 的序列 A ( n≤200 ) ,1<=A[i]<=n1 希望修改尽量少的数,使得序列的任意相邻两个数在图上是是相邻节点,或者相同 n<=100 ,直接暴力 枚举位置i,i-1 的值, 那么就可以转移 如果 k==j 阅读全文
posted @ 2022-10-28 09:31 towboat 阅读(20) 评论(0) 推荐(0)