首页
首页
BOT
沸点
课程
直播
活动
AI刷题
NEW
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
XCPC
蛋蛋兽
创建于2021-06-29
订阅专栏
题解及算法
暂无订阅
共60篇文章
创建于2021-06-29
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
树链剖分 专练
月下“毛景树” 思路 树链剖分裸题,但是维护的是边权,考虑到每个节点仅有一个父亲,因此用节点来维护与它父亲相连的那条边的边权。 第一种操作,记录下每条边深度最深的端点,单点修改即可; 第二种操作,沿着
线性筛(欧拉筛) 例题
Codeforces Round #304 (Div. 2) D. Soldier and Number Game 题目链接 思路 对于某一个数$n$,要想玩最多回合,就每次取其一个质因数,直到取完,
Codeforces Beta Round #13 题解
比赛链接 B 思路 计算几何题。首先确定合法情况下必定只有五个不同的端点,可以用set维护这个特性。在此基础上,找到拥有共同端点的两条线,也就是字母‘A’的腰,求出他们的长度,根据勾股定理确定他们的夹
Codeforces Beta Round #12 (Div 2 Only) D. Ball 题解
题目链接 思路 cdq分治的裸题。先把三个属性值离散化,进行cdq分治。设$a[i].die$为能够杀死第$i$个人的人数,即满足$x_j>x_i,y_j>y_i,z_j>z_i$的$j$的个数,如果
Codeforces Beta Round #11 D. A Simple Task 题解
题目链接 思路 $n$比较小,刚开始直接爆搜,从第$i$个点出发,只去比当前点编号大的点,一旦回到起点,就维护一次答案。那么所有的方案数就是$1\rightarrow n$的全排列,复杂度达到$O(n
洛谷 P3157 [CQOI2011]动态逆序对 题解
题目链接 思路 做法是树状数组套主席树。 考虑每次删除一个元素对答案的影响。删除位于第$i$个位置的元素$x$(指数字大小)后,答案减少的数量是位置小于$i$且比$x$大的数字的个数(记为$fir_i
Codeforces GYM101466 题解
题目链接 A 思路 在线做,把所有数字添加前缀$0$都变成$19$位数字,从高位到低位维护到trie树中,每次插入一个新的数字之前先在trie树上贪心,分别找最大值和最小值。 代码 E 思路 设第一个
Codeforces Round #650 (Div. 3) E 题解
题目链接 思路 本质上是凑出一个最小循环节为$k$的因数的字符串,枚举循环节长度和循环节个数,判断能否凑出来,并用二者乘积维护答案。 代码
Codeforces GYM101350 题解
比赛链接 A 思路 当中间点确定,左侧$000...1$的长度与右侧$1000...0$的长度乘积就会贡献一次答案,前提是左右两个$1$与中间点之间的$1$的个数相等。分别预处理出每个$1$左侧和右侧
2017 JUST Programming Contest 2.0 题解
比赛链接 B 思路 设$dp_i$是前$i$个元素的方案数。考虑第$i$个元素,在它前面的某个元素$k$的后面插一个板,在$[k+1,i-1]$的元素后面不插板,此时对答案的贡献就是$dp_k$。这样
Codeforces GYM100247 K. Three Contests 题解
题目链接 思路 记第$i$支队伍在第一场比赛中排名为$a_i$,第二场为$b_i$,第三场为$c_i$。 考虑先按第一维排序,下标大的必定在第一场比赛中赢过下标小的,那么任意$b_i>b_j(i<j)
Codeforces Round #704 (Div. 2) 题解
分别找到小于$p$的$a,b,c$的最大的倍数,取其与$p$差的最小值即可。 最优解必然是让字典序尽量大。证明: 设最终数组为a,且对任意i\in[1,n-1]:a_i>a_{i+1}。\ 如果交换其中的a_k,a_{k+1},其他位置对答案的贡献不会改变,所以只考虑这两个位置…
2021年USSTSIW寒假算法集训9 题解
因此有$a=(b+1)k$。因为$b>k$,结合式子可以发现$a>k^2$,即$k<\sqrt a$。所以考虑枚举余数$k$。当$k$确定时,$a$与$b$是一一对应的(原式形如一次函数)。因此只要确定有多少个$b$满足条件,就可以知道当前的$k$对答案的贡献是多少。…
Educational Codeforces Round 76 (Rated for Div. 2) 题解
选一个移动$x$步即可,注意距离最大为$n-1$的限制。 第一种操作可以使当前数字变大,第二种操作是变小,因为第二种操作每次都减$1$,因此只要得到一个比$y$大的数字就一定可以得到$y$。观察发现当$x$最小为$4$时可以通过操作得到一个无限大的数,因此只需要特判$x…
Codeforces Round #661 (Div. 3) 题解
对于代价相同的边肯定取对答案贡献较大的,考虑把两种代价的边分别丢到两个优先队列里,代价为$1$的称为$A$堆,代价为$2$的称为$B$堆。对于两条$A$边的贡献之和大于一条$B$边的,此时选择这条$B$边必定不如选择两条$A$边更优,考虑选择贡献最大的一条$A$边还是两条都选。…
Codeforces Round #600 (Div. 2) 题解
至多只能操作一次,只需要判断A和B是否只有一段连续区间$[l,r]$,存在$a[i]-b[i]=constant(i,j\in [l,r])$。 合法的一天数据总和必定为$0$,考虑维护当天的数据总和$sum$,一旦$sum$清零就结束这一天。如果$sum$为负数或一个元素在一…
Codeforces Round #515 (Div. 3) 题解
$[1,l-1]$范围内有$\frac{l-1}{v}$个。对于区间$[r+1,n]$,找到最后一个小于$r$的$v$的倍数,即$r'=\lfloor \frac{n}{x}\rfloor\times x$。答案是$\frac{n-r'}{v}$。 考虑覆盖第$i$个位置,如果…
Codeforces Round #674 (Div. 3) 题解
$n$小于$3$就是第一层,否则就先减去第一层的$2$个,答案是$1+\frac{n+x-1}{x}$。 对左上角到右下角的对角线上面的元素,始终满足$i=j$,所以只考虑从右上角到左下角的对角线即可。这就要求存在一块砖,右上角的元素等于左下角的元素,判断是否有这样的砖以及铺设…
Codeforces Round #550 (Div. 3) 题解
记录每个字母的出现次数,然后扫一遍字母表判断即可。 把原数组的元素根据奇偶性分成两组,如果奇数和偶数的个数(分别记为$cnta,cntb$)相差小于$2$,就可以全部删完,答案为$0$,否则就从较多的一组中取$|cnta-cntb|-1$个数字作为答案。 因为可以随便取来构造单…
Codeforces Beta Round #10 题解
对$\forall i\in [1,n]$,必定有$r_i-l_i$的时间段功率为$P_1$,之后对$i\in [2,n]$维护从第$i-1$段结束到第$i$段开始产生的代价。设间隔时间为$dis=l_i-r_{i-1}$。 $T_1$:两种情况。如果$dis<T_1…
下一页