12 2015 档案

摘要:好久没更了。前段时间去ec-final,实力水一波,混了个铜,虽然很弱,但是可以算是对之前一段时间的回报吧。 现在每天忙着复习,逃课太多,啥都不会。。。不想挂科啊!!Orz... 题意(简化):警察想抓捕黑手党老大。现在警察们认为黑手党内部是树形结构,每个人看做节点。删除一个节点,这棵树就分为几个连 阅读全文
posted @ 2015-12-30 14:36 sweat123 阅读(392) 评论(0) 推荐(0)
摘要:#include #include #include #include using namespace std; const int MAXN = 110; vectora[MAXN]; int n,m,v[MAXN],vis[MAXN],dp[MAXN][MAXN]; void dfs(int root) { dp[root][1] = v[root]; vis[root] =... 阅读全文
posted @ 2015-12-09 22:05 sweat123 阅读(379) 评论(0) 推荐(0)
摘要:#include #include #include #define INF 999999999 using namespace std; const int MAXN = 210; struct node { int to; int v; int next; }edge[MAXN*3]; int pre[MAXN],n,index,vis[MAXN],m,num[MAX... 阅读全文
posted @ 2015-12-06 15:38 sweat123 阅读(144) 评论(0) 推荐(0)
摘要:想法:对于一棵树,对于任意一个节点,它的最大值可以来自以它为根的子树,也可以来自它的父亲。所以需要考虑二个方向的情况。所以必须考虑2个方向。解法:dp[i][0]保存子树的值,dp[i][1]保存父亲结点方向+dis[i,root];可以先一遍dfs,保存任意点子树的最大值,同时保存任意点取最大值的 阅读全文
posted @ 2015-12-04 20:01 sweat123 阅读(163) 评论(0) 推荐(0)
摘要:树形dp入门,在树上进行dp。 状态转移方程: dp[i][0] = max(dp[j][0], dp[j][1]);//i为j的上司 并且i不来 dp[i][1] = dp[j][0];//i来了 用vector实现 rt表示树。 阅读全文
posted @ 2015-12-03 16:22 sweat123 阅读(115) 评论(0) 推荐(0)