上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 53 下一页
摘要: 树形dp 题目是要求最深的颜色 先开始觉得设dp[i][0/1/2]表示这个点的状态,然后发现没办法保证该点是最深的点,且dp状态没有实际意义,其实dp[i][0/1]表示当前i的子树颜色为c^1的叶子结点都已经染好了,现在颜色为c的还没染好,注意当前i节点还没有染色,那么dp[i][0]=min( 阅读全文
posted @ 2017-10-18 20:40 19992147 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 最短路+状压dp 肯定是状压dp 那么我们把k个点的单源最短路预处理出来,然后dp[i][j]表示状态为i,当前在j需要走的最短距离,给定的限制用状态压一下就行了 注意特判k=0的情况 #include<cstdio> #include<cstring> #include<algorithm> #i 阅读全文
posted @ 2017-10-18 20:32 19992147 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 矩阵乘法 看成了合并果子。。。 就是斐波那契数列,只是有负数的时候,先把负数变成正的,然后矩乘 矩乘还是用单位举矩阵记录快速幂的矩阵比较保险 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typ 阅读全文
posted @ 2017-10-18 20:29 19992147 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 区间dp 好神 看上去没有思路,因为觉得完成没有顺序,没有明显的转移顺序,转移的时候没办法记录之前已经完成哪些,那么转移就不能保证任务全部完成。但是我们发现其实没完成的任务一定是一段连续的区间,那么我们就可以进行区间dp,dp[i][j][0/1]表示当前未完成的区间是[i,j],现在正在完成i或j 阅读全文
posted @ 2017-10-18 20:27 19992147 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 树形dp 有一个比较明显的dp状态是dp[i][j]表示当前i节点的子树已经满足且i剩下j元钱的最小操作次数,这样复杂度比较高状态数已经有O(n*x)的了,转移再来x,肯定不行。 我们考虑把状态和dp值交换一下,因为操作次数最多只有n-1次,这样可以大大降低dp状态数,于是我们设dp[i][j]表示 阅读全文
posted @ 2017-10-18 20:16 19992147 阅读(152) 评论(0) 推荐(0) 编辑
摘要: spfa+dp 脑洞好大 这是一个dp,可惜有环,不能直接记忆化搜索,但是我们用spfa优化一下,如果一个点的dp值被更新,那么他的前继也要重新入队进行dp,因为前继是由后继更新的 #include<bits/stdc++.h> using namespace std; typedef long l 阅读全文
posted @ 2017-10-17 14:35 19992147 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 背包dp 一道很早以前就见过的dp dp[i][j][k]表示选到第i本书,第一层宽度为j,第二层宽度为k的最小高度,我们先把书按高度排序,然后转移就很方便了,因为高度降序,所以后选的书不影响之前选的,也就是说只有当前层没放过书才用这本书更新,否则维护原来的值,然后滚动数组,卡卡常数就过了 #inc 阅读全文
posted @ 2017-10-13 15:29 19992147 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 记忆化搜索 这是一个dag,肯定会抓住的,所以可以记忆化搜索 然后预处理出p[i][j]表示i,j位置怎么走,记忆化搜索就行了 #include<bits/stdc++.h> using namespace std; const int N = 1010; struct edge { int nxt 阅读全文
posted @ 2017-10-13 10:47 19992147 阅读(123) 评论(0) 推荐(0) 编辑
摘要: dp 我好像很zz。。。 想了好长好长时间,然后没想出来,怒掉rating。。。 其实我们可以吧三种颜色两两计算,因为这样加入第三种颜色不会影响之前的方案,那么我们跑一个dp,计算数量分别为a,b的方案数,乘起来就行了。。。 (我还去想数三元环什么的。。。) #include<bits/stdc++ 阅读全文
posted @ 2017-10-09 20:03 19992147 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 树形dp 并没有想出来。。。 这个点分治很明显做不了,没办法批量处理信息,那么我们就只能考虑树形dp了,然后觉得用虚树什么的每个颜色单独考虑,GG 事实上我们可以这样考虑,我们对树进行dfs,每个节点有一个颜色,那么我们考虑子树中有多少条路径不包含这个颜色,很明显这条路径不能路过这个点,也就是说答案 阅读全文
posted @ 2017-10-09 19:50 19992147 阅读(220) 评论(0) 推荐(0) 编辑
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 53 下一页