题目链接: P2633 Count on a tree solution: LCA好题.询问第k大,不难想到主席树和前缀和思想,对于每个点$x$,我们可以用主席树维护root到$x$上的序列,然后查询$x,y$路径上的第$k$小只需要用前缀和维护权值线段树,用$x+y-lca(x,y)-f[lca( ...
分类:
其他好文 时间:
2020-07-26 15:45:20
阅读次数:
73
期望好题。 发现 \(n\) 非常小,应该要想到状压的。 我们可以先只考虑 0 操作。 最难的还是状态: 我们用 \(S\) 表示左部点有哪些点已经有对应点, \(T\) 表示右部点有哪些点已经有对应点,\(f[S][T]\) 表示从一条边没连到此状态的期望方案数 这样就有转移: \(f[S][T] ...
分类:
其他好文 时间:
2020-07-19 23:41:18
阅读次数:
72
题目描述 给定一个长度为 \(n\) 的数列 $a_i$?,求 $a_i$? 的子序列 $b_i$? 的最长长度 \(k\),满足 \(b_i \& b_{i-1} \ne 0\),其中 $2\leq i\leq k$, \(\&\) 表示位运算取与。 输入格式 输入文件共 $2$ 行。 第一行包括 ...
分类:
其他好文 时间:
2020-07-08 19:39:56
阅读次数:
36
题目描述 分析 第一次看这道题首先想到的就是时间复杂度为$\ n^{2}$的求最长上升子序列 for(int i=1;i<=n;i++){ f[i]=1; for(int j=1;j<i;j++){ if((a[i]&a[j])!=0) f[i]=max(f[i],f[j]+1); } ans=ma ...
分类:
其他好文 时间:
2020-07-08 19:29:07
阅读次数:
37
这题非常好。。看似很简单其实比较复杂,交了一堆假算法全wa了。。 看题解也好久才弄明白 /* 给定一张有向图,确定一个点T,问有多少T0,满足所有T0->T的路径,都经过边(T0,T) 建立反图,T变为起点,求所有T0,满足T->T0所有路径都经过(T,T0) 首先确定用bfs,我们从每个和T连边T ...
分类:
其他好文 时间:
2020-06-14 14:24:22
阅读次数:
81
思考了挺久的一题,主要卡在建图这一块,序列上的问题很难想到图论上。。 可以交换位置是一种关系,那么不能交换也是一种关系:两个不是朋友的点,相对位置保持不变! 不能交换的关系的两点就可以连边,在图上u->v就表示u一定在v前面 但是这样暴力建图显然会炸,我们再进行优化: 我们把动物i(设物种x)和其后 ...
分类:
编程语言 时间:
2020-06-14 00:58:46
阅读次数:
69
题目链接: "P4170 [CQOI2007]涂色" 区间 $dp$ 好题。 我们假如已经有这个区间的最小步数: $$BRG$$ 如果在区间右端添加一个 会怎么样呢? 考虑上一个涂到这个 未知的颜色是啥,显然是前面的这些之一或是他自己。 如果是他自己,那么: $$dp_{l,r}=dp_{l,r 1 ...
分类:
其他好文 时间:
2020-05-13 23:09:57
阅读次数:
66
```//以u为根节点//找u的最大子树 中的最大分支//直接连到u上//看看能不能满足条件#include #include #include #include using namespace std;const int N = 400010;struct Node{ int fi, se; vo... ...
分类:
其他好文 时间:
2020-05-06 09:12:09
阅读次数:
59
/* 离线读入所有值后离散化 题意要求的是,sum{ ai*2^(i-1)*aj*2^(n-j) } 分析这个式子,考虑进行分治 区间[l,r]的 sum{ ai*2^(i-l)*aj*2^(r-j) } 可以将式子分成 ai*2^(i-l) 和 aj*2^(r-j)两部分看, 线段树维护四个值,s ...
分类:
其他好文 时间:
2020-05-03 18:47:51
阅读次数:
60
/* 两个重要的结论: 1.将每条边强行移到圆上,如果多边形所有边的圆心角之和=2pi,那么圆心在多边形中;>2pi,那么圆半径太小;<2pi,圆半径太大 2.不管按什么顺序摆放边,都不影响多边形的对应其外接圆(如果有)的圆心角之和 给定多边形的各边边长,要求构造出一个多边形,使其所有点在外切圆上, ...
分类:
其他好文 时间:
2020-04-28 00:16:30
阅读次数:
49