随笔分类 - DP--树形
摘要:1 //树形DP+树状数组 HDU 5877 Weak Pair 2 // 思路:用树状数组每次加k/a[i],每个节点ans+=Sum(a[i]) 表示每次加大于等于a[i]的值 3 // 这道题要离散化 4 5 #include 6 using namespace std; 7 #define LL long long 8 typedef pair pii; 9 co...
阅读全文
摘要:1 // 树形DP CCPC网络赛 HDU5834 Magic boy Bi Luo with his excited tree 2 // 题意:n个点的树,每个节点有权值为正,只能用一次,每条边有负权,可以走多次,问从每个点出发的最大获益 3 // 思路: 4 // dp[i]: 从i点出发回到i点的最大值 5 // d[i][0] 从i点出发不回来的最大值 6 // d[i][...
阅读全文
摘要:http://acm.hdu.edu.cn/search.php?field=problem&key=2016+Multi-University+Training+Contest+1&source=1&searchmode=source 1001 Abandoned country 题意:n个数 m
阅读全文
摘要:A - Pineapple Incident 1 #pragma comment(linker, "/STACK:102c000000,102c000000") 2 #include <iostream> 3 #include <cstdio> 4 #include <cstring> 5 #inc
阅读全文
摘要:Tree2cycle dfs 不是根节点:如果边数大于等于2,则删除与父节点的边。并且是一条环,那么每个点的度数是2,则还要删除num(每个节点儿子数)-2,只留两个儿子。当然删除边的儿子也要连到环上,又是一个num(每个节点儿子数)-2次操作。最后不同分支之间还要连一条边。所以复杂度为:2*(nu
阅读全文
摘要:求树的重心,直接当模板吧。先看POJ题目就知道重心什么意思了。。。 重心:删除该节点后最大连通块的节点数目最小 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<queue> 5 #include<stack
阅读全文
摘要:思路:这题就是学习一下算法优化,选择最优方案,O(nm) 可以学习一下《浅谈数据的合理组织》这篇论文 详见代码 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<queue> 5 #include<stack
阅读全文
摘要:简单树形DP 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<cstdlib> 5 using namespace std; 6 int n,w[6001],ne=0; 7 bool in[6001]; 8
阅读全文