CodeForces - 1051D Bicolorings(DP)】的更多相关文章

题目链接:http://codeforces.com/problemset/problem/1051/D 看了大佬的题解后觉着是简单的dp,咋自己做就做不来呢. 大佬的题解:https://www.cnblogs.com/tobyw/p/9685639.html 刚看的时候有点感觉 状态肯定是(i,k) 但是这个状态不具备无后效性 会受到i-1两个格子啥颜色的影响 然后就没往下想了qwq 大佬用了二进制来表示这两格的状态 现在的状态就是(i, k, color) color有4种可能 0,0 …
题目:https://codeforces.com/problemset/problem/1051/D 题意:一个2行n列的矩形,上面有黑白块,然后问你怎么布置才能有k个连通块,问有多少种方案数 思路:其实就是一个矩阵,我们一次放一列 四种状态 黑    |   白 | 白 | 黑 白 |  黑 | 白 | 黑 我们dp[n][m][k],第n列第m种状态k个连通块的方案数,现在我们算放每个状态时,计算一次增加了多少个连通块 因为数组太大了,所以我们用滚动数组 然后递推就行了 #include<…
D. Bicolorings time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given a grid, consisting of $$$2$$$ rows and $$$n$$$ columns. Each cell of this grid should be colored either black o…
[链接] 我是链接,点我呀:) [题意] 题意 [题解] dp[i][j][k]表示前i列,有j个联通块下,最后一列的状态为k的方案数 k如果为1的话,表示最后一列两个块不一样,k如果为0表示一样 枚举最后一列的情况转移就好 [代码] #include <bits/stdc++.h> using namespace std; const int maxn=1100; const long long mod=998244353; #define ll long long #define mem(…
题目链接:http://codeforces.com/contest/682/problem/D 思路:dp[i][j][l][0]表示a串前i和b串前j利用a[i] == b[j]所得到的最长子序列, dp[i][j][l][1]表示a串前i和b串前j不利用a[i] == b[j]所得到的最长子序列, 所以,dp[i][j][l][0] = max(dp[i-1][j-1][l][0] ,max(dp[i-1][j-1][l-1][0],dp[i-1][j-1][l-1][1])) + 1 d…
题目链接:http://codeforces.com/problemset/problem/666/A 思路:dp[i][0]表示第a[i-1]~a[i]组成的字符串是否可行,dp[i][1]表示第a[i-2]~a[i]组成的字符串是否可行,显然dp[len-2][0(1)]必定不可行. 转移方程: dp[i][0] = dp[i+3][1] || dp[i+2][0] && (tmp1 != tmp2); dp[i][1] = dp[i+2][0] || dp[i+3][1] &…
题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=28214 题目大意:源串有如下变形:每次将串切为两半,位置颠倒形成新串.问经过K次变形后,与目标串相同的变形方案数.mod 1000000007. 解题思路: 奇葩的字符串DP.照着别人的题解写的,解释不出原理是什么. 首先统计出经过1次变形,就能和目标串相同的中间产物串(包含源串)的个数cnt.len表示源串长度,那么len-cnt就表示和目标串不同的个数. 用…
题目链接: http://poj.org/problem?id=2117 题目大意:统计一个范围内数的个数,要求该数能被各位上的数整除.范围2^64. 解题思路: 一开始SB地开了10维数组记录情况. 首先要求能被各位上的数整除,可以转化为被一个数整除问题. 这个数就是各位上数的最小公倍数LCM(不是GCD). 其次,处理整除问题,得转化成数位DP的余数模板.1~9的LCM最大是2520, 那么%2520,让其可以开数组进行记忆化搜索. 最后, 对于不能%2520最后结果,再%各个数位累计过来的…
题目链接:http://codeforces.com/problemset/problem/264/B 代码: #include<cstdio> #include<iostream> #include<vector> #include<cstring> using namespace std; ; int dp[maxn]; vector<int> dx[maxn]; void get_div() //筛因子 { ; i<maxn; i++…
题目:http://codeforces.com/contest/398/problem/B 有点似曾相识的感觉,记忆中上次那个跟这个相似的 我是用了 暴力搜索过掉的,今天这个肯定不行了,dp方程想了非常久也没有想出来,有点无从下手的感觉,最后还是尝试了一下记忆化搜索,以dp[0][0]为边界,dp[x][y]代表当前有x行y列没有彩色的 瓷砖,搜索起来思路还是非常清晰的,可惜最后那个 算期望公式给写错了,瞎了好久,做出以后看了一下别人的做法,确实有点难想到,把涂好的都放在右下角,这样就仅仅有四…