首页 > TAG信息列表 > TJOI
「tjoi 2018」智力竞赛
link。 这题数据应该蛮水的,直接把大于二分值的点去掉实际上应该是有问题的。然而题解区里都写的是这种做法,所以这里主要对如何处理大于二分值的点做分析。 注意这里大于二分值的点的意义是「可以走,但走了不贡献」,因此可能对最小路径覆盖的去除其为起点 / 终点的操作次数影响。处理「TJOI / HEOI2016」求和
第二类斯特林数的通项公式: \[S(n,k) = \frac {\sum_{i=0}^k (-1)^i*\binom{k}{i}*(k-i)^n}{k!} \] 带入原式可得: \[\sum_{i = 0}^n\sum_{j = 0}^n S(i,j)*2^j*j!\\= \sum_{i= 0}^n\sum_{j =0}^n 2^j*j!\frac {\sum_{k=0}^j (-1)^k*\binom{j}{k}*(j-k)^i}{j!}\\= \sum_{j=0}^! TJOI/HEOI2016字符串
\(nm1e5\) 求a-b的后缀与c后缀的最长公共前缀 二分长度,这样可以锁定a-b可行的区间 然后再二分rk区间,哪些可行 区间内查存在性,主席树 代码较繁琐,还没写! TJOI/HEOI2016排序
只用询问一个地方的值,考虑二分,把大于mid的全变1,否则为0,这样就变成01序列排序,一次\(log\),用线段树辅助,时间复杂度\(O(nlog^2n)\) 线段树分裂 类似非旋treap 建立权值线段树,把有序的用用一个线段树表示,并把所有线段树初始节点插入set,每次修改就把修改区间split出来,记录其排序方式dtoi4537 「TJOI / HEOI2016」树
题意: 有一棵树,每次两种操作,给一个点打上标记或者询问一个点最近的一个打了标记的祖先(包括自己),一开始只有根节点有标记 题解: 本题方法较多,这里采用一种最简单的做法。 先将树转化成dfs序,每一次打标记操作相当于在自己的子树上覆盖一个值,这个值也就是自己的[BZOJ 3173] [TJOI 2013] 最长上升子序列(fhq treap)
[BZOJ 3173] [TJOI 2013] 最长上升子序列(fhq treap) 题面 给定一个序列,初始为空。现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置。每插入一个数字,我们都想知道此时最长上升子序列长度是多少? 分析 这题有几个重要性质: 第一个性质是,插入的数的大小是递增的。TJOI 2015 弦论
子串,容易想到 \(SAM\) 首先类似模板题一样的记录 \(num(v)\) 表示有多少子串经过 \(v\) \(sum(v)\) 表示状态 \(v\) 在字符串中的出现次数 如果 \(T = 1\) 显然 \(sum(v)=1\) 否则,发现 \(sum(v)\) 实际就是其后继节点的 \(\sum_{}num(y)\) 然后 \(O(n)\) 即可扫除答案 #include <ma[TJOI 2018] XOR
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5338 [算法] 首先对这棵树进行树链剖分 那么我们就将一个树上的问题转化为一个序列上的问题 建立可持久化字典树维护最大异或值即可 时间复杂度 : O(Nlo[BZOJ 3170] [TJOI 2013] 松鼠聚会
Description 草原上住着一群小松鼠,每个小松鼠都有一个家。时间长了,大家觉得应该聚一聚。但是草原非常大,松鼠们都很头疼应该在谁家聚会才最合理。 每个小松鼠的家可以用一个点 \((x,y)\) 表示,两个点的距离定义为点 \((x,y)\) 和它周围的 \(8\) 个点 \((x-1,y)\),\((x+1,y)\),\((x,y-