摘要: 对于一棵树,求遍历k个节点的最少步数。先求出直径,若未超过直径,则就是k-1,否则就是 直径 + 2 * (k - 直径 - 1)。#include #include #include #include using namespace std;#define maxn 100100#define m... 阅读全文
posted @ 2014-08-13 21:33 贝尔摩德 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 如果选了节点u,则不能选他的父节点和子节点,每个点有一个权值,求最大权值。#include #include #include using namespace std;#define maxn 6100#define maxm 15000struct Node{ int u,v,next;}e... 阅读全文
posted @ 2014-08-13 21:28 贝尔摩德 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 代码来自baka。。#include#include#include#include#include#include#include#include#include#include#include#define inf 0x3f3f3f3f#define Inf 0x3FFFFFFFFFFFFFFF... 阅读全文
posted @ 2014-08-13 20:53 贝尔摩德 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 对于每个点拆点成为两个点a,b,连接a到b的上界为1,下界为1的边,保证用过一次且仅一次。然后若点u可到达点v,则连接即可。建成了一个上下界网络,将下界拆出去,求最大费用最大流就好。#include #include #include using namespace std;const int N=... 阅读全文
posted @ 2014-08-13 20:30 贝尔摩德 阅读(163) 评论(0) 推荐(0) 编辑
摘要: #include #include using namespace std;int dp[50];int main(){ int n,m; while(1) { scanf("%d%d",&n,&m); if(n==0&&m==0) break; ... 阅读全文
posted @ 2014-08-13 20:23 贝尔摩德 阅读(114) 评论(0) 推荐(0) 编辑