2019年1月29日

poj3162 树形dp|树的直径 + 双单调队列|线段树,好题啊

摘要: 题解链接:https://blog.csdn.net/shiqi_614/article/details/8105149 用树形dp是超时的,, 阅读全文

posted @ 2019-01-29 22:51 zsben 阅读(159) 评论(0) 推荐(0)

hdu2196 树形dp经典|树的直径

摘要: /* 两种做法 1.求出树直径v1,v2,那么有一个性质:任取一点u,树上到u距离最远的点必定是v1或v2 那么可以一次dfs求树v1 第二次求dis1[],求出所有点到v1的距离,同时求出v2 第三次求出dis2[],求出所有点到v2的距离 2.树形dp,dp[u][0|1]表示结点u向下的最大距离和向上的最大距离 dp[u][0]可以直接由子树求出 d... 阅读全文

posted @ 2019-01-29 14:31 zsben 阅读(136) 评论(0) 推荐(0)

cf14d 树的直径,枚举删边

摘要: #include using namespace std; #define maxn 300 struct Edge{int from,to,nxt,flag;}edge[maxnMax){node=u,Max=dep;} for(int i=head[u];i!=-1;i=edge[i].nxt){ int v=edge[i].to; if(edge[i... 阅读全文

posted @ 2019-01-29 11:39 zsben 阅读(194) 评论(0) 推荐(0)

cf29d 深搜,dfs序

摘要: #include using namespace std; #define maxn 500 struct Edge{int to,nxt;}edge[maxnv; void init(){ memset(head,-1,sizeof head); k=tot=0; } void addedge(int u,int v){ edge[tot].to=v;edge[tot]... 阅读全文

posted @ 2019-01-29 11:38 zsben 阅读(127) 评论(0) 推荐(0)

cf161d 求距离为k的点对(点分治,树形dp)

摘要: 点分治裸题,但是用树形dp也能做 阅读全文

posted @ 2019-01-29 11:37 zsben 阅读(291) 评论(0) 推荐(0)

ural1018依赖背包-边权

摘要: 其实用点权更简单,但这种做法是边权的 阅读全文

posted @ 2019-01-29 11:35 zsben 阅读(126) 评论(0) 推荐(0)

导航