摘要: /*状压dp刚开始&写成&&看了好长时间T0T.状态转移方程 dp[i][k][j]=Max(dp[i][k][j],dp[i-1][l][k]+num[i][j]);(第i行的第j个状态有上一行的第k个状态得到) num[i][j]有两个功能,第一:判断第i行第j个状态是否合法 ... 阅读全文
posted @ 2014-10-02 21:25 HYDhyd 阅读(91) 评论(0) 推荐(0) 编辑
摘要: /*树的分治因为树的点权值可达到10^15,注意手动扩栈,还有int64题意:给你一棵树,给你一些素数,给你每个点一个权值且每个权值均可由这些素数组成。现在定义任意任意两点的价值为他们路径上的权值相乘。求这样的点对的权值为立方数的个数解:如果直接求得话会超int64,不可行由立方数的性质可得,一个数... 阅读全文
posted @ 2014-10-02 20:03 HYDhyd 阅读(274) 评论(0) 推荐(0) 编辑
摘要: /*数位dp用记忆化搜索写很清爽啊!不用推状态转移方程good。开一个二维数组用来储存前len状态对10取余,有10种状态0-9;然后直接过一遍就行了*/#include#include#define ll __int64#define N 20ll digit[N],dp[N][11];ll d... 阅读全文
posted @ 2014-10-02 18:32 HYDhyd 阅读(141) 评论(0) 推荐(0) 编辑