``` //f[i,j]一共有i位数字,且最高位是j,而且不包括4和64的数的个数 //f[i-1,k] 表示次高位为k //如果合法,那么需要满足 j、k都不为4 jk不是62 #include #include #include #include using namespace std; con... ...
分类:
其他好文 时间:
2020-03-15 15:06:35
阅读次数:
52
``` #include #include #include #include using namespace std; typedef long long ll; const int N = 35; ll n; ll f[N][30]; void init() { //处理一位的数字 for (i... ...
分类:
其他好文 时间:
2020-03-15 15:05:02
阅读次数:
51
题面:能量项链https://www.luogu.com.cn/problem/P1063 乍一看和石子合并差不多,可是多了头值和尾值,看起来十分麻烦 我们画一张图,紫色表示头值,蓝色表示尾值。规定西边那个珠子编号为1,然后顺时针编号 很明显,我们现在要解决的是 dp [ i ] [ k ] 和 d ...
分类:
其他好文 时间:
2020-03-15 11:35:26
阅读次数:
49
1 #include<iostream> 2 using namespace std; 3 const int N=100+10; 4 const int INF=0x7fffffff; 5 int main(){ 6 int n,m; 7 while(cin>>n>>m){ 8 int dp[N] ...
分类:
其他好文 时间:
2020-03-15 09:54:30
阅读次数:
306
题目描述 题解 区间合并dp,之前做过但是忘了 两个子树合并时,一定是若干段区间交错,如果有相邻两段来自不同子树的区间就可以合并,此时的深度贡献为d\[t] 设f\[i]\[j]表示根i段j,g\[i]\[j]\[k]\[0/1]表示当前合并时剩余总段i,两个子树的段jk,结尾为什么 看似O(n^4 ...
分类:
其他好文 时间:
2020-03-14 23:41:38
阅读次数:
87
首先可以发现,数字从高到低,每一个数字只能放在已经放了的数字所在的行和列中。 因此我们可以得出一个dp 令dp[k][i][j]表示已经有i行,j列被覆盖,同时拥有k个数字。 所以每一次转移,只会多出一行,或者一列,或者都没有。 这道题极度卡常。我今天比赛交了13发才过,注意模运算,乘法次序等。 ...
分类:
其他好文 时间:
2020-03-14 22:08:52
阅读次数:
61
题意:给出p串字符(每串都是20个字母) 给出k ,k表示总共可以分成几部分; 给出词典,这个词典最多包含6个单词, 求如何分,能够得到最多单词; 注:每份中包含的单词可以部分重叠。当选用一个单词之后,其第一个字母不能再用 思路:很明显,这道题应该用dp解法; 首先,我们先将p串字符连成一串 我们需 ...
分类:
其他好文 时间:
2020-03-14 19:51:45
阅读次数:
52
题意: 就问你每个节点到以这个点为根的子树的叶子节点的最远距离。 链接: http://acm.hdu.edu.cn/search.php?action=listproblem 思路: 我们设DP[i][0]表示以i节点为根节点的子树中的最远距离, DP[i][1]表示以i节点为根节点的子树中的次远 ...
分类:
其他好文 时间:
2020-03-14 14:54:09
阅读次数:
35
题目传送门:https://ac.nowcoder.com/acm/contest/4743/E 题解:可以翻看我的提交记录。 ...
分类:
其他好文 时间:
2020-03-14 13:07:37
阅读次数:
61
``` //一开始要思考:到底是增好还是减好 //然后用dp,忽略这个问题 //首先要明确的是,最终序列中的数字一定都是原序列中的数字 #include #include #include using namespace std; const int N=2000+20; int a[N]; int... ...
分类:
其他好文 时间:
2020-03-14 12:48:17
阅读次数:
47