
仙人掌
SC.ldxcaicai
我很菜=_=
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2018.07.25 bzoj2125: 最短路(圆方树+倍增)
传送门 人生的第一道仙人掌。 这道题求是仙人掌上的最短路。 先建出圆方树,然后用倍增跑最短路,当lcalcalca是圆点和方点时分类讨论答案即可。 代码如下:#include<bits/stdc++.h>#define N 20005using namespace std;inline int read(){ int ans=0; char ch=ge...原创 2018-07-25 21:44:45 · 199 阅读 · 0 评论 -
2018.10.29 洛谷P4129 [SHOI2006]仙人掌(仙人掌+高精度)
传送门显然求出每一个环的大小。Ans=∏i(siz[i]+1)Ans=\prod_i(siz[i]+1)Ans=∏i(siz[i]+1)注意用高精度存答案。代码:#include<bits/stdc++.h>using namespace std;inline int read(){ int ans=0; char ch=getchar(); w...原创 2018-10-29 11:53:01 · 226 阅读 · 0 评论 -
2018.10.29 bzoj1023: [SHOI2008]cactus仙人掌图(仙人掌+单调队列优化dp)
传送门求仙人掌的直径。感觉不是很难。分点在环上面和不在环上分类讨论。不在环上直接树形dpdpdp。然后如果在环上讨论一波。首先对环的祖先有贡献的只有环上dfsdfsdfs序最小的点。对答案有贡献的则是环上的任意两个点。对于环上任意两点(i,j)(i,j)(i,j)Ans=max(Ans,f[i]+f[j]+dist(i,j))Ans=max(Ans,f[i]+f[j]+dist...原创 2018-10-29 11:58:36 · 325 阅读 · 0 评论 -
2018.10.29 bzoj4564: [Haoi2016]地图(仙人掌+莫队)
传送门根据原图建一棵新的树。把原图每一个环上除了深度最浅的点以外的点全部向深度最浅的点连边。然后可以搞出来一个dfsdfsdfs。这个时候我们就成功把问题转换成了对子树的询问。然后就可以对权值分块用莫队做了注意如果不用分块而是用树状数组维护是O(nlognsqrt(n))的代码:#include<bits/stdc++.h>using namespace std;in...原创 2018-10-29 15:05:22 · 355 阅读 · 1 评论 -
bzoj4316: 小C的独立集(仙人掌+树形dp)
传送门题意:给出一个仙人掌森林求其最大独立集。思路:如果没有环可以用经典的树形dpdpdp解决。fi,0/1f_{i,0/1}fi,0/1表示第iii个点不选/选的最大独立集。然后fi,0+=max{fv,0,fv,1},fi,1+=fv,0f_{i,0}+=max\{f_{v,0},f_{v,1}\},f_{i,1}+=f_{v,0}fi,0+=max{fv,0,fv,1},f...原创 2019-02-07 19:16:52 · 373 阅读 · 0 评论 -
bzoj4784: [Zjoi2017]仙人掌(仙人掌+树形dp)
传送门题意:给一个无向连通图,问给它加边形成仙人掌的方案数。思路:先考虑给一棵树加边形成仙人掌的方案数。这个显然可以做树形dp。fif_ifi表示把iii为根的子树加边形成仙人掌的方案数。然后有两种情况:iii点没有父亲iii点有父亲对于第一种情况即iii是树根的情况,显然fi=(∏fv)∗g∣sonp∣f_i=(\prod f_v)*g_{|son_p|}fi=(∏f...原创 2019-02-07 20:55:57 · 225 阅读 · 0 评论 -
bzoj1487: [HNOI2009]无归岛(仙人掌+树形dp)
传送门人脑转化条件过后的题意简述:给你一个仙人掌求最大带权独立集。思路:跟这题没啥变化好吗?再写一遍加深记忆吧。就是把每个环提出来分别枚举环在图中的最高点选还是不选分别dpdpdp一下即可,时间复杂度O(n+m)O(n+m)O(n+m)代码:#include<bits/stdc++.h>#define ri register intusing namespace std...原创 2019-02-07 21:18:35 · 206 阅读 · 0 评论