上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 59 下一页
摘要: /*数位dp,记忆化搜索写法注意memset(dp,-1,sizeof(dp))是放在外面的,这样保证每次搜索时存的值满足下一次也可以用;如果放在里面就会超时每个长度有10000种状态*/#include#include#define N 20int len,digit[N],dp[N][1000... 阅读全文
posted @ 2014-10-03 18:48 HYDhyd 阅读(147) 评论(0) 推荐(0) 编辑
摘要: /*状压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 阅读(90) 评论(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) 编辑
摘要: /*记忆化搜索,第二维判断是否是6*/#include#include#define N 9int dp[N][2],digit[N];int dfs(int len,int cnt,int ok) {//cnt代表是否是6,ok代表前一个是当前为最大值,并且当前也是最大值 if(!len)ret... 阅读全文
posted @ 2014-10-01 21:31 HYDhyd 阅读(226) 评论(0) 推荐(0) 编辑
摘要: /*啊啊啊啊啊啊啊本题证明一个问题,在实际应用中sort比qsort块还有memset这类初始化能不加尽量别加,很浪费时间原来的程序把qsort该成sort,去掉一个无用memset就a了时间不到一半题意:和poj1741差不多,不过本题求的是dis[i]+dis[j]==dis[k];*/#inc... 阅读全文
posted @ 2014-10-01 20:00 HYDhyd 阅读(177) 评论(0) 推荐(0) 编辑
摘要: /*树的分治题意:求树上两点间的距离#include#include#define N 11000#define inf 0x3fffffffstruct node{int u,v,w,next;}bian[N*4];int head[N],yong,num[N],ma,minn,m,nn,vis... 阅读全文
posted @ 2014-10-01 16:39 HYDhyd 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 树的重心定义为:找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡. 实际上树的重心在树的点分治中有重要的作用, 可以避免N^2的极端复杂度(从退化链的一端出发),保证NlogN的复杂度, 利用树型dp可以很好地求树的重心/*求树的重心,... 阅读全文
posted @ 2014-10-01 14:36 HYDhyd 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 转载地址:http://blog.csdn.net/pi9nc/article/details/12394117主要是利用了反证法:假设 s-t这条路径为树的直径,或者称为树上的最长路现有结论,从任意一点u出发搜到的最远的点一定是s、t中的一点,然后在从这个最远点开始搜,就可以搜到另一个最长路的端点... 阅读全文
posted @ 2014-09-30 16:56 HYDhyd 阅读(270) 评论(0) 推荐(0) 编辑
摘要: /*树链刨分+离线操作题意:给你一棵树,和询问x,y 从节点x--节点1的小于等于y的最大值. 解:先建一个空树,将树的边权值从小到大排序,将询问y按从小到大排序 对于每次询问y将小于等于y的边权值的边加入,在进行询问将结果储存最后输出即可 易错点:要考虑到节点1到节点1的情况需特判。*/#... 阅读全文
posted @ 2014-09-30 15:49 HYDhyd 阅读(183) 评论(0) 推荐(0) 编辑
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 59 下一页