题意:一个无向图,首先判定是否成环,然后求一条最长链。
分析:成环用并查集判断,最长链就是树形dp了。
#include
#include
#pragma comment(linker, "/STACK:1024000000,1024000000")
using namespace std;
#define N 100005
int ans;
int dp[N]; //dp[i]表示i节...
分类:
其他好文 时间:
2015-06-08 09:55:31
阅读次数:
120
简答题,每次取出最长链,然后对于练上每个点x,终点在其子树内的链都要减去a[x]这显然可以用dfs序+线段树维护显然每个点只要删一次即可,复杂度是O(nlogn) 1 type node=record 2 s,lx,rx,mx,lp,rp,pb,pe:longint; 3 ...
分类:
其他好文 时间:
2015-06-05 00:14:34
阅读次数:
236
这道题其实是求K条最长的不重叠的链。贪心算法+DFS即可求。深度优先搜索时,返回当前子树的最长链,使用优先队列保存其他孩子结点的最长链,即可。求结果时只需从优先队列中取前K个值的和。这相当于暴力删除每条最长的链。#include #include #include #include #include...
分类:
其他好文 时间:
2015-05-30 10:39:09
阅读次数:
125
1143: [CTSC2008]祭祀riverTime Limit:10 SecMemory Limit:162 MBSubmit:1285Solved:645[Submit][Status][Discuss]Description在遥远的东方,有一个神秘的民族,自称Y族。他们世代居住在水面上,奉龙...
分类:
其他好文 时间:
2015-05-01 10:34:55
阅读次数:
126
树形DP 说是树形DP,其实就是求树的最长链嘛…… K=1的时候明显是将树的最长链的两端连起来最优。 但是K=2的时候怎么搞? 考虑第一次找完树的最长链以后的影响:第一次找过的边如果第二次再走,对答案的贡献会变成-1,因为两次都选这一段的话,反而会使得这一段不得不走两次(如果只被选一次的话就...
题目大意:给定一些自动机,如果某个自动机AA能产生的所有串都能在自动机BB中产生,则称BB是AA的一个升级,求最长链
这题TM有毒
数据范围5050,暴力枚举每一对点之间的关系,然后Tarjan缩点求最长链就行了
现在对于一对自动机AA和BB,我想知道AA能产生的所有串是否都能在BB中产生,那么BFS就可以了
我们用一个二元组(x,y)(x,y)表示走了某个串后AA走到了节点xx,BB走到了...
分类:
其他好文 时间:
2015-04-27 21:58:29
阅读次数:
155
树形DP+单调队列优化DP 好题(也是神题……玛雅我实在是太弱了TAT,真是一个250) 完全是抄的zyf的……orz我还是退OI保平安吧 第一步对于每一天求出一个从第 i 个点出发走出去的最长链的长度,树形DP解决…… g[x][0]表示从x的子树中,x到叶子的最长链,g[x][1]表...
分类:
其他好文 时间:
2015-04-18 19:02:02
阅读次数:
489
题解:
对于 k==0k==0 的情况:
我们发现遍历一棵树最后回到原点,那么对于所有的边,我们都是走过去,再走回来。
答案 (n?11)(n-1
对于 k==1k==1 的情况
设每条边长度为1,然后树上找最长链,然后这条链走过去就不再一步步往回了,直接从链底连一条边去链顶,然后链中间连的那些点,直接走过去再走回来,它们那些边的答案是不变的。
答案 (n?11)?(链长度)+1(n-...
题目大意:给定一张无向图,求s1到t1与s2到t2的最长公共最短路
以s1 t1 s2 t2为源做4次最短路
如果某条有向边满足s到起始点的距离+边长+终点到t的距离=s到t的最短路 那么这条边就可以在s到t的最短路上
我们把所有既在s1到t1的最短路上也在s2到t2的最短路上的有向边都拎出来
容易证明这个图一定没有环 因此拓扑排序求最长链即可
写完发现过不去样例。。。
因为这题题目描...
分类:
编程语言 时间:
2015-03-21 11:24:38
阅读次数:
211
求树的最长链,BFS和DFS都可以,时间复杂度O(n)#include#includeint tot,vt[20005],nxt[20005],a[20005];bool vis[10005];int n,i,j,xx,yy,s,ma,r;void search(int x,int dep){ .....
分类:
其他好文 时间:
2015-03-14 10:58:28
阅读次数:
207