摘要: 山海经 阅读全文
posted @ 2019-08-10 21:23 _xuefeng 阅读(378) 评论(10) 推荐(8) 编辑
摘要: 弱智题解。 阅读全文
posted @ 2019-08-08 19:15 _xuefeng 阅读(507) 评论(0) 推荐(2) 编辑
摘要: boom 阅读全文
posted @ 2019-08-02 20:45 _xuefeng 阅读(234) 评论(0) 推荐(2) 编辑
摘要: [摘自爱码网] 这种算法能够解决关于询问一棵树的子树的相关信息的问题。 算法的流程大概是这样: 1、dfs将一棵树建好,将节点的size、dfs序、重儿子、该dfs序对应的节点这些信息处理好(其他的信息具体问题具体分析)。 2、进入solve函数,先去解决非重儿子,然后将这些非重儿子的信息暴力清空。 阅读全文
posted @ 2019-07-30 14:38 _xuefeng 阅读(151) 评论(0) 推荐(2) 编辑
摘要: 我们概括题意,即将n个点组成一棵树的方案数. 所以是prufer. 又因为要考虑连边顺序,因此再乘上(n-1)!. 唔...难道你们都知道为什么是(n-1)!而不是n!吗... 反正我被这个地方卡了... 我认为选第一个点的方案为n,第二个为n-1,...所以应该是n!.. 但是是错的,因为对于每一 阅读全文
posted @ 2019-07-25 17:22 _xuefeng 阅读(237) 评论(1) 推荐(2) 编辑
摘要: prufer数列,可以用来解一些关于无根树计数的问题。 prufer数列是一种无根树的编码表示,对于一棵n个节点带编号的无根树,对应唯一一串长度为n-2的prufer编码。 (1)无根树转化为prufer序列。 首先定义无根树中度数为1的节点是叶子节点。 找到编号最小的叶子并删除,序列中添加与之相连 阅读全文
posted @ 2019-07-21 19:23 _xuefeng 阅读(273) 评论(0) 推荐(2) 编辑
摘要: vim查看颜色:ls -l /usr/share/vim/vim74/colors/ 数组指针!=指针数组,要传数组用 int *a ,a本身是个指针,加上[]解引用,删掉后我的int *实际上表示的是我传的a是一个指针,*是给int的而不是a,也可以int* a这么写 预处理log: if(!lg 阅读全文
posted @ 2019-07-14 21:26 _xuefeng 阅读(142) 评论(0) 推荐(3) 编辑
摘要: 提炼:tarjan环缩成点,建0虚根,跑树形DP,最难的是看出可能有n个点n条边然后缩点,n个点n条边可能不只有一个环 n个点n条边->基环树: 基环树,也是环套树,简单地讲就是树上在加一条边。 既然成环就必定要么全选要么全不选,直接缩成一个点即可。 我的错误: 1.第二次建图时跑的第一次的邻接表 阅读全文
posted @ 2019-07-12 14:22 _xuefeng 阅读(199) 评论(0) 推荐(2) 编辑
摘要: 提取:等式转换,桶,倍增lca 对于(x,y)的一次提问,我们规定lca为(x,y)的lca d为深度,w为点出现观察员的时间 那么对于(x,lca)这段路径上的点i,此次提问能作出贡献的等式是 d[x]-d[i]=w[i] ->d[x]=w[i]+d[i] 对于(lca,y)这段路径上的点i,此次 阅读全文
posted @ 2019-07-12 14:04 _xuefeng 阅读(134) 评论(2) 推荐(2) 编辑
摘要: 一上来这个专题就死磕了这道题一上午,然后发现 类似二分图?2h 样例都过不去 类似状压?1h 过样例了,WA 0 类似暴搜?10min AC 然而正解是欧拉回路 欧拉回路: 如果图G中的一个路径包括每个边恰好一次,则该路径称为欧拉路径(Euler path)。如果一个回路是欧拉路径,则称为欧拉回路( 阅读全文
posted @ 2019-07-12 12:11 _xuefeng 阅读(177) 评论(0) 推荐(2) 编辑
摘要: 提炼:tarjan判环,dfs建树,倍增lca,预处理环两点间距离 我犯的错误: 1.基环树不只有一棵,可以有很多 2.自环不能将其忽略,(对于我的算法)应该将其特殊考虑在算法内 3.代码一定要简洁有力,不能让自己调都恶心 Code 数组含义: que[N]队列,in_que[N]tarjan判是否 阅读全文
posted @ 2019-07-12 11:57 _xuefeng 阅读(147) 评论(0) 推荐(3) 编辑
摘要: 本题需要一定的思考量。 对于位于(x,y)的一黑色,无论如何换,它的相对位置总不会发生变化,也就是不会有两个(x,y)位置的黑色 那么如果我们想让对角线上布满黑色,就可以将题目转化为 判断是否有n个满足横纵坐标互不相同的黑色 二分图匹配即可。 Code #include<cstdio> #inclu 阅读全文
posted @ 2019-07-12 11:45 _xuefeng 阅读(151) 评论(0) 推荐(2) 编辑
摘要: 没什么的,看到限制想想拓扑就行。 拓扑有两种形式(我接触的): 1.求字典序最小:建正图,找最小的进行更新,正序输出。 2.求编号最小:建反图,找最大的进行更新,倒序输出。 本题是第二种情况。 Code #include<cstdio> #include<cstring> #include<queu 阅读全文
posted @ 2019-07-12 11:37 _xuefeng 阅读(144) 评论(0) 推荐(2) 编辑
摘要: 解法一:主席树 题目可转化为带修[L,R]内不同数的个数,就用主席树了。 权值主席树维护位置上的数的前驱,在求[L,R]内不同数的个数时就将R树与L-1树作差取<=L-1的数的个数。 修改时考虑对于pos这个位置改为col,会有另两个位置受影响。 一个是以pos为pre的位置,它的pre要变为pre 阅读全文
posted @ 2019-06-30 16:51 _xuefeng 阅读(275) 评论(1) 推荐(3) 编辑
摘要: 2019.6.29 博客园向我招手。 Update 2019.7.11 开始集训。 2019.8.28 开始半集训。 2019.9.17 换到扬帆楼机房。 2019.9.28 开始封闭集训。 阅读全文
posted @ 2019-06-29 21:15 _xuefeng 阅读(210) 评论(2) 推荐(2) 编辑