仙人掌
L_0_Forever_LF
一个热爱OI的OIer
展开
-
BZOJ2125: 最短路
建出圆方树 对于询问的两个点,倍增找他们的LCA 若是圆点,直接得到答案 若是方点,两边的点先跳到这个环上,然后找环上的最近距离code:#include<set> #include<map> #include<deque> #include<queue> #include<stack> #include<cmath> #include<ctime> #include<bitset> #inc原创 2017-09-27 22:13:25 · 352 阅读 · 0 评论 -
BZOJ1023: [SHOI2008]cactus仙人掌图
建出圆方树 像普通找直径那样dp一下 环上的dp要维护一个单调队列code:#include<set> #include<map> #include<deque> #include<queue> #include<stack> #include<cmath> #include<ctime> #include<bitset> #include<string> #include<vector> #i原创 2017-09-27 22:16:38 · 412 阅读 · 0 评论 -
仙人掌学习笔记
今天大概学了一些仙人掌 emmmmmmmmmmm 感觉这东西思想不难,就是很能码,可能因为我码风比较长仙人掌图指的是一个无向的连通图,其中任意一条边至多在一个环中 于是树其实就是一个不含环的,特殊的仙人掌图,仙人掌图就是一个特殊的无向图 由于其特殊性质,许多在无向图上很棘手的,甚至是npc的问题在仙人掌图上就变得可做了通常我们会用一个叫圆方树的东西处理关于仙人掌的问题 原图中每个环都是一个原创 2017-09-27 22:11:16 · 1704 阅读 · 0 评论 -
BZOJ4316: 小C的独立集
建出圆方树在上面做树形dp f[i][0/1]表示点i是否选,i的子树内的最大独立集 g[i][0/1][0/1]表示i这个环(不包括环的父亲),两端是否选,最大独立集code:#include<set> #include<map> #include<deque> #include<queue> #include<stack> #include<cmath> #include<ctime> #i原创 2017-09-27 22:15:27 · 358 阅读 · 0 评论