题目链接
思路
用思维DP,dp[i][j][k][l]表示第一个点走到i,j,第二个点走到k,l的最大值。
然后根据转移,第一个点可以由左或者上转移,第二个点也是。那么一共有四种组合。
左左,上上,左上,上左。然后根据这两点的坐标是否相同,决定贡献。
代码实现
1 |
|
你最愿意做的哪件事,才是你的天赋所在
用思维DP,dp[i][j][k][l]表示第一个点走到i,j,第二个点走到k,l的最大值。
然后根据转移,第一个点可以由左或者上转移,第二个点也是。那么一共有四种组合。
左左,上上,左上,上左。然后根据这两点的坐标是否相同,决定贡献。
1 | #include<bits/stdc++.h> |
这是一道数位DP的模板题目,可以转化成不要49,是反正写的。
具体参考我前面的不要62这篇博客。正着写也有方法。
首先DP分为两种情况。
1.先搜到49,那么后面就不用搜了,直接加上后面的答案。
2.没搜到49,继续往下搜,并且带入一个状态前一个是否是否为4.
1 | #include<bits/stdc++.h> |
Codeforces Round #578 (Div. 2)
500分的题目,直接暴力模拟
1 | #include<bits/stdc++.h> |
数位DP,我的理解就是求一个区间内满足一些条件的数的个数。
通过记忆化搜索和动态规划的方法让我们能够更快速的得到答案。
1 | #include<bits/stdc++.h> |
Educational Codeforces Round 70 (Rated for Div. 2)
找到第二个字符串的最后一个1,让他能够与第一个字符串1能够相加即可
1 | #include<bits/stdc++.h> |