
csc的做题日记
iiTzSimple
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #713 (Div. 3) G. Short Task(数论-因素)
题意很明确,我们所要处理的就是求出,每个数的因素之和即可,范围限定在1e7内,那么在这里由初等数论求因素的和,我们就知道要先去求每个数的最小质因数。数论:假设x=p1a1+p2a2+p3a3一个正整数的因素个数为(a1+1)(a2+2)(a3+3)一个正整数的所有因素之和为(1+p11+p12+**+p1a1)(1+p21+p22+**+p2a2)(1+p31+p32+***+p3a3)在这个结论的前提下,我们可以在接近线性时间的复杂度下筛出每个数的最小质因数,然后进行因素和的求解,进行预处理原创 2021-04-12 18:26:25 · 164 阅读 · 0 评论 -
Codeforces Round 711 D. Bananas in a Microwave
题意大致是给你n次操作,以及上限m;假设从k = 0开始,上限为m。在n次操作中,给出t,x,y当t ==1时,k:=⌈(k+xi)⌉.当t ==2时,k:=⌈(k⋅xi)⌉.对于这题其实可以直接暴力模拟,但需要做一个优化来减小它的时间复杂度。在这里先给出优化条件:if (vis[cur]) break; 对于遍历到已经遍历的点,直接中断遍历;我们可以这么想,首先对于乘法和加法是一样的,我们以加法为例当我们从某个数开始加时,我们最多可以加y次,那么当我们从c1开始加时可以加到原创 2021-03-30 22:31:54 · 135 阅读 · 0 评论 -
Codeforces Round 698 Nezzar and Binary String
题目链接: Nezzar and Binary String.显然每一次操作都会对后序序列产生影响,因而我们考虑倒着考虑,从结果字符串出发,根据询问区间去调整当前区间的01串,由于要求调整个数严格小于区间长度一半,因而若出现sum1 == sum0即错误,输出NO;否则根据需求进行调整。显然这么分析下来,该题主要思路为区间询问,区间修改,传统做法肯定是采用线段树去做,但由于这里数据只有0和1,我们可以本着线段树的思想,采用set去做。/* * @Author: your name * @Date:原创 2021-03-17 18:44:15 · 177 阅读 · 0 评论 -
codeforces round 699 CD
C、把a涂成b,利用c。c中颜色按顺序,通过vector存b[i]对应要改的位置/* * @Author: your name * @Date: 2021-03-10 18:32:11 * @LastEditTime: 2021-03-10 19:52:26 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: \code_formal\cf\CF_699_3.cpp原创 2021-03-10 21:21:15 · 118 阅读 · 0 评论 -
codefces round 700 CD12解析
C、显然a[0]=a[n+1]=正无穷,那么对于0-n+1这个区间,两边的单调情况显然是向中间下滑的,如此在区间中任意取一点m,在与m-1或m+1比较都一样,这里举m+1为例,若m<m+1的值,显然此时区间0-m是向中间凹的,答案必在此区间,否则在另一区间。对值的选取显然采用二分是最快的,如此往复,便可以得到极小值。/* * @Author: your name * @Date: 2021-03-09 16:06:00 * @LastEditTime: 2021-03-09 16:56:39原创 2021-03-09 17:02:57 · 106 阅读 · 0 评论 -
codeforces global round 13 D
由U&V==V方有U到U+V的一条有向边知,U+V必定由U进位而来,且U+V的二进制中1的个数必然小于等于U;则可以很简单判断/*@Author: your name@Date: 2021-03-08 20:21:54@LastEditTime: 2021-03-08 20:27:27@LastEditors: Please set LastEditors@Description: In User Settings Edit@FilePath: \code_formal\cf\GR_原创 2021-03-08 20:42:45 · 105 阅读 · 0 评论 -
codeforces round 705 CD
C、K-beautiful Strings计算为使满足条件所需的字母个数sum;然后从倒序遍历,计算将该字母升序之后,更新sum值,看是否为0,是则可以;若不成则往前继续算,但此时最后一个位置放空不看,因为前一个升序,不管后一个是什么字母,一定满足升序;所以此时sum值可以为1;以此类推直到sum值满足条件,然后正常构造即可/* * @Author: your name * @Date: 2021-03-06 22:45:10 * @LastEditTime: 2021-03-08 17:39:3原创 2021-03-08 20:40:21 · 152 阅读 · 0 评论 -
【CSP】202009-4 星际旅行(计算几何)
该题本质上并不难,只要你理解了它的核心——刨析直线与圆的关系。在以前的高中课本中,想必大家都学过,过三点必确定一个平面,显然这里的三点我们取黑体中心,及任意两个旅行点。这样一来超维情况便只剩下解决两点之间的距离,显然把相对应的维坐标相减取二次方,再都加起来,最后开方根即是最终答案。接下来我们刨析一下直线与圆的关系。显然,直线与圆只有相交相切相离三种情况,而在取的任意两个旅行点连起来的直线与原点所在平面截下来的圆相切或相离时,由两点之间直线最短可知最短旅行距离。而在相交情况下,则要分两种情况,两旅行点..原创 2020-12-19 21:48:06 · 434 阅读 · 1 评论 -
【CSP】202009-3点亮数字人生(拓扑排序)
本题并不难,主要在于将电路连接图抽象为有向图,然后进行简单拓扑排序即可,下文给出代码在已在几个点给出注释/* * @Author: csc * @Date: 2020-12-14 17:29:08 * @LastEditTime: 2020-12-19 19:10:17 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: \code\csp\2009_3.cpp..原创 2020-12-19 19:23:32 · 466 阅读 · 1 评论