[BZOJ1040][ZJOI2008]骑士 基环树DP】的更多相关文章

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1040 题目给出了$n$个点和$n$条无向边,即一棵基环树或者基环树森林. 如果题目给的关系是在一棵树上,就是一道经典的树形DP.现在我们考虑转化一下. 我们先找到那个环上的任意一条边,端点为u,v.加上这条边的影响仅仅是不能同时选择u和v. 所以我们考虑去掉这条边再分类讨论.如果不选u,那么v任意选:如果不选v,那么u任意选.那么DP的时候强制不走这条边,同时取两种不选根节点的最大值作为…
一类基环树dp都是这个套路吧 随便拆掉环上的一条边 然后跑树形dp,设\(f[i][0/1]\)表示以第\(i\)个人为根的子树,第\(i\)个人选或不选,能收获的最大值 以断点\(u,v\)为根分别跑基环树,每个连通块答案就是 \(max(f[u][0],f'[v][0])\) 血:两个骑士可能相互憎恨,形成重边…
1040: [ZJOI2008]骑士 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 5816  Solved: 2263[Submit][Status][Discuss] Description Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各 界的赞扬.最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火绵延五百里,在和平环境 中安逸了数百年的Z国又怎能抵挡的住Y国的军队.于是人…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1040 基环树的模板. 套路就是把环断开,先把一端作为根节点,强制不选:再把另一端作为根节点,强制不选. 人家的这个判断环的方法真好!还顺便没有连上环的那条边,省下了在函数里判断. 别忘了有多棵基环树! #include<iostream> #include<cstdio> #include<cstring> #define ll long long using n…
N个点,每个点发出一条边,那么这个图的形状一定是一个基环树森林(如果有重边就会出现森林) 那我做f[0][x]和f[1][x]分别表示对于x子树,x这个点选还是不选所带来的最大价值 然后就变成了这好几个环上不能选相邻的点,最大的价值和 我们把这个环从N到1处断开,然后钦定一下1选还是不选,统计一下答案就可以了. #include<bits/stdc++.h> #define pa pair<int,int> #define ll long long using namespace…
Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬.最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火绵延五百里,在和平环境中安逸了数百年的Z国又怎能抵挡的住Y国的军队.于是人们把所有的希望都寄托在了骑士团的身上,就像期待有一个真龙天子的降生,带领正义打败邪恶.骑士团是肯定具有打败邪恶势力的能力的,但是骑士们互相之间往往有一些矛盾.每个骑士都有且仅有一个自己最厌恶的骑士(当然不是他自己),他是绝对不会与自己最厌恶的人一同出…
P2607 [ZJOI2008]骑士 本题本质上就是树dp,和没有上司的舞会差不多,只不过多了一个对基环树的处理. #include<iostream> #include<cstring> #include<string> #include<cstdio> #define ll long long using namespace std; const int maxn=2e6; int n,cnt; ll val[maxn]; int root; int h…
<题目链接> 题目大意: Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬.最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火绵延五百里,在和平环境中安逸了数百年的Z国又怎能抵挡的住Y国的军队.于是人们把所有的希望都寄托在了骑士团的身上,就像期待有一个真龙天子的降生,带领正义打败邪恶.骑士团是肯定具有打败邪恶势力的能力的,但是骑士们互相之间往往有一些矛盾.每个骑士都有且仅有一个自己最厌恶的骑士(当然不是他自己),他是绝…
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题意概括 有n个人,每一个人有一个最恨的人. 并且,每一个人有一个权值. 一个人不可以和他最恨的人同时被选中. 现在请你求出在这n个人中选出一些人,使得其权值和最大. (题解在“心塞史”后面) 心塞史 注:蒟蒻第一次遇见这种基环树题QAQ. 先看样例. 3 10 2 20 3 30 1 Ⅰ 瞬间开心. 随便选了一道,居然是水题? 这种类似的题目我貌似做过,好像是找几个环就可以了? 当然,于是我找完环,打完线性动归,一交wa…
其实已经准备退役了,但GDOI之前还是会继续学下去的!!当成兴趣在学,已经对竞赛失去信心了的样子,我还是回去跪跪文化课吧QAQ 第一道环套树DP...其实思想挺简单的,就把环拆开,分类处理.若拆成开的两个点是u,v,dp[i,0..1]分别表示第i位骑士不选和选 (1) 不选u,v点随意    (2)u随意,v点不选... 分类dp处理即可 ; type edgetype=record toward,next:longint; end; var edge:..maxn*] of edgetype…