珂朵莉树(\(ODT\)) 0x01 珂朵莉树可以解决什么问题 对于涉及区间推平操作的问题,就是把\([l, r]\)区间内的所有数字变成相同的一个数。如果数据是随机的就可以使用珂朵莉树。 0x02 珂朵莉树的基本原理 比如一开始把一个区间分成这些部分,那么我们就可以用一个结构体将相邻的数字存
概念 我们考虑这样一个问题:求 \(\sum_{i=1}^{k} \lfloor \dfrac{n}{i} \rfloor\) 我们以 \(n=7,k=7\) 为例子,先画出 \(f(x) = \dfrac{7}{x} \ (1 \leq x \leq 7)\) 的图像 因为我们的取值是向下取整的,我们描出所有可能的取值 注意到所有的点按照取值可以分成若干段 我们可以一次
「HNOI2008」玩具装箱 题目大意 有 \(n\) 个玩具,第 \(i\) 个玩具的价值为 \(c_i\) 。这 \(n\) 个玩具排成一排,要求将这些玩具分成若干段,对于一段 \([l,r]\) ,其代价为 \((r-l+\Sigma_{i=l}^{r}c_i-L)^2\) 。其中 \(L\) 是一个常量,求分段最小代价。\((1 \leq n \leq 5 \times 10^4,
传送门 题意: 在每一轮游戏玩家选择一个数字从1 ~ 1e9, 在这之后一个甩子有1e9个面旋转,会出现任意的一个数字,如果这个玩家猜对了,他们的钱就会成倍,如果猜错了,他们的钱就会减半,M能够遇见未来,知道n个回合甩子将会展现的数字\(x_1, x_2, x_3, \cdots, x_n\), 他将会选择三个数字a, l, r(
吐了。。。写完poj2417之后意识到poj不支持stl和__int128。。。你好歹是个大学的软件,不管你们acmer的吗。。 鬼才写快速乘和hash。不让我用__int128和map我就不交poj上了。发现luogu有一模一样的板子题。 题目:P3846 [TJOI2007] 可爱的质数/【模板】BSGS 题意: 讲一下bsg
tree 题目叙述 给定两棵 \(n\) 个点的树,求一个编号最大的点满足他在第一棵树上的点是第一棵树上的点 \(u\) 的祖先和在第二棵树上的点是第二棵树上的点 \(v\) 的祖先。多组询问 \(u,v\) 。 题解 在第一棵树上看第二棵树,第二棵树上的祖先关系可以理解为 dfs 序子树形成区间的嵌套关
概念 当 \(p\) 是一个质数时,有 \[\dbinom{n}{m} \bmod p \equiv \dbinom{\lfloor \dfrac{n}{p} \rfloor}{\lfloor \dfrac{m}{p} \rfloor} \times \dbinom{n \bmod p}{m \bmod p} \pmod{p} \]实现 引理: 考虑 \[\dbinom{p}{n} \bmod p \]的取值,注意到展开之后其为如下形式 \[\dbino
正题 题目链接:https://www.luogu.com.cn/problem/AT2366 题目大意 有一个长度为\(2n-1\)的序列\(a\),你可以将其重新排列,定义\(b_i\)为\(a_{1\sim 2i-1}\)的中位数。 询问有多少种不同的可能的\(b\)序列。 \(1\leq n\leq 50\) 解题思路 先假设\(a\)中所有数字都不同,我们去考虑一
link 分别考虑原数组 $a[]$ 中所有的正数,负数以及 0 的数量:设 $a[]$ 中正数的数量为 $cnt1$ 个,把 $a[]$ 中所有正数保存在 $bz[]$ 数组中,负数数量为 $cnt2$ 个,保存在 $bf[]$ 数组中,0 的数量为 $cnt0$ 个。----------------------------------设 $x1$, $x0$, $x2$ 分别为两两相
链接 \(Link with Bracket Sequence II\) 为了方便去重,我们令 \(f_{i,j}\) 表示 \(i\) ~ \(j\) 组成的两端括号匹配的合法括号序列方案数,\(g_{i,j}\) 表示 \(i\) ~ \(j\) 组成的合法括号序列方案数,答案为 \(g_{1,n}\) 。 转移 \(g_{i,j} -> f_{i-1,j+1}\),\(g_{i,j}=\sum\limits_{k
链接 \(A:Task Computing\) 微扰法可以证明,若 \(i\) 排在 \(j\) 前面,则 \(w_i(p_j-1) < w_j(p_i-1)\) 。 先将其按该方法排序,我们只需要选出 \(m\) 个按顺序排即可。 \(m\) 很小,考虑 \(dp\) ,\(f_{i,j}\) 表示从前 \(i\) 个中选出 \(j\) 个的最大值。 但从前向后还有 \(p\) 会对后
链接:https://ac.nowcoder.com/acm/contest/25022/1022来源:牛客网 题目描述 给定一张n个点m条边的无向图,求出图中所有简单环的数量。(简单环:简单环又称简单回路,图的顶点序列中,除了第一个顶点和最后一个顶点相同外,其余顶点不重复出现的回路叫简单回路。
传送门 题意: P最近准备多米诺骨牌,每张多米诺骨牌包含两个数字从1 ~ n, 他能把多米诺骨牌分配给两个集合使得每个集合中的元素都是不相同的吗? 每张多米诺骨牌只能去一个集合 思路: 先考虑特殊的,如果牌的数字重复,一个数字出现 >= 3, 牌的数量是奇数,这些就是不可能的,而且每个数字1 ~
转载自LIOI_TEos的题解 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e6 + 100; const ll mod = 20040820; const int INF = 2147483647; const int lim = 1e4 + 1; int n, v[maxn], v2[maxn], r[maxn]; ll anss, st, ans2,
比赛链接: https://vjudge.net/contest/507736 B - Boss Rush 题意: 有 \(n\) 个技能,第 \(i\) 个技能使用完后的 \(t_i\) 时间内不能使用其他技能,该技能会在 \(len_i\) 的时间中,每秒造成 \(d[i][j]\) 点伤害 \((1 <= j <= len_i)\),boss 有 \(H\) 滴血,问最短多少时间能杀死 boss。 思
https://codeforces.com/contest/1706 一排n栋建筑,其中第I(1≤I≤n)栋楼高hi层。当且仅当建筑物I中的层数hi大于建筑物j中的层数hj时,建筑物I才比建筑物j高 如果建筑I高于建筑I-1和建筑i+1(并且两者都存在),则建筑I是凉爽的。注意1号楼和n号楼都不能凉。 为了改造这个城市,Qpwoeiru
A.蓝蓝的棋盘 dp题 因为蓝蓝走过棋之后下一个人是先手,可以把问题简化为一个保证先手且不断减少的棋盘。 设计状态:dp[i]表示在第i位下,先后手最优策略下的差值,因为是先手减去后手,所以也是最大差值 从n到0倒序dp,设计转移方程为:dp[i]=max(a[y]-dp[y])\(i<y \leq i+m\) 可用单调队列来
链接:https://ac.nowcoder.com/acm/contest/25022/1020来源:牛客网 题目描述 德玛西亚是一个实力雄厚、奉公守法的国家,有着功勋卓著的光荣军史。 这里非常重视正义、荣耀、职责的意识形态,这里的人民为此感到强烈自豪。 有一天他们想去制裁邪恶的
题面:http://acm.hdu.edu.cn/showproblem.php?pid=7175 题意:一个有向图,边权 ei 和 pi 。求从点 1 跑到点 n , 最小 Sum(ei) 是多少?在满足 Sum(ei) 最小的基础上,Sum(pi) 最大是多少? ei 和 pi 大于等于 0。保证答案存在且可输出。 思路: 先用Dijkstra找最短路,然后再扫一遍找出最短路图
A. Two 0-1 Sequences 大致翻译: 两个长度为n和m的二进制序列a和b(题目保证n >= m) 两个操作: op1: 改变a(2) 为min(a(1), a(2)),并且移除a(1) op2: 改变a(2) 为max(a(1), a(2)),并且移除a(1) 每次操作后,原先的a(i)变成a(i + 1), 长度减少1,即前移。 a二进制序列能否通过这两个操作
https://ac.nowcoder.com/acm/contest/33189/K 题意: 给出n个数,要求从1到n以此得出这n个数,每轮可以进行一种操作,将\(x\)变成\((10*x+y)\%n\),\(x\)最开始是\(0\),\(y\)每次由自己随意指定,问最少操作多少次可以得到这n个数 解法: 假设\(n\)是\(100\),那么显然,对于所有数\(i\)都可以经过
https://ac.nowcoder.com/acm/contest/33189/N 题意: 给\(n\)个数,每次任选两个数\(a,b\),变成两个新数\(a|b\)和\(a\&b\),在进行若干次操作后,数列会处于稳定,求方差 解法: 观察操作我们会发现,在操作前后,每一位上的1的数量不会发生变化,如果有两个1,与和或产生的都是1,如果有一个1,只有与是
Problem - C - Codeforces 题意 有 n ( n <= 36) 个点,每个点有颜色,每个颜色都相同的权值(为正数);有 m 条边,u -> v 且 u < v, 求从 1 号点到 i 号点的路径上,选颜色互不相同的一些点,使权值和最大 状压dp 首先可考虑 TSP 问题类似的状压dp方法,但 \(36*2^{36}\) 太大,考虑优化 可以分析一
Checkers 思维 + 倍增LCA 隐式建图 考虑排序好的大小 \(a\), \(b\), \(c\) 如果 \(b - a = c - b\):只有两种情况转移,中间的往左边或者右边跳 如果 \(b - a \ne c - b\):除了上述的情况,还有两边通过中间跳 第二种情况显然可以被认为是其上一个状态,通过中间那个跳珠往两边跳造
2022牛客多校第四场 过程 开局顺利签到K,N,队友也做出A题,开场顺利。然后我看D,队友看C,D一开始陷入了三维树状数组的陷阱,耽误了时间,但之后立刻想到了正解,码完之后发现自己生成的数据和题目给的不一样,然后就开始坐牢了,队友在想题不想段思维,只剩我百思不得其解还冒险交了两发,实在是难蚌