随笔分类 -  算法竞赛

CF/ABC/XCPC比赛的补题记录
摘要:A exgcd exgcd(a,b,x,y)a,b已知,用于求解ax+by=gcd(a,b)中的某一组解 x,y;而求ax+by=kgcd(a,b) 的解,只需要将 exgcd(a,b,x,y) 求出的x,y阅读全文
posted @ 2025-02-05 21:29 jxs123 阅读(2) 评论(0) 推荐(0) 编辑
摘要:第一场区域赛,惨遭打铁。赛时只出了BCI。赛后补了DG,发现两道题都没有那么难,只能说还得加训。。。 C,I相对简单一些,就不写题解了。 code_C B 补得最难绷的一题。先写了一个栈维护dfs路径的写法,TLE15;又写了一个set维护结点之间访问关系的写法,\( 阅读全文
posted @ 2025-02-05 01:57 jxs123 阅读(9) 评论(0) 推荐(0) 编辑
摘要:赛时8题(实际上是7题,有道题数据水而被fst了...) E 这道题赛时做出来了,但看题解时看到了一个值得学习的重要结论。 结论:要将一个数组中的所有数变为相同的数x,操作为加1或减1,那么最小代价 <> x是中位数。 (若不知道这个 阅读全文
posted @ 2025-02-04 09:39 jxs123 阅读(4) 评论(0) 推荐(0) 编辑
摘要:官解:editoral C 构造 基于D题的结论,设钦定子串的最左侧字符为A,最右侧字符为B:只要该子串左侧含有A,或者最右侧字符含有B,那么该子串便合法,只需要找到最长的子串即可。 还可以进一步发现:这个最长子串一定是原字符串的某个前缀或者后缀。否则,一定可 阅读全文
posted @ 2025-02-04 09:37 jxs123 阅读(2) 评论(0) 推荐(0) 编辑
摘要:题目链接:problem f[i][j]: 将str[i]变为字符j,将str[in]变为合法字符串,需要的最小操作次数。 nxt[i][j]:将str[i]变为字符j的所有方案中,最优方案转移过来的字符。其中: \(nxt[i][j]==j 阅读全文
posted @ 2025-02-04 08:34 jxs123 阅读(4) 评论(0) 推荐(0) 编辑
摘要:C 感觉还是不熟练与拆位相关的题目,补了半天才补出来。 问某个区间内符合某种性质的数的个数,很容易想到用前缀和思想转化,则问题转化为快速求出在[1,x]中高位比其余位上数字都大的数字的个数。 设xnum位,最高位数字为d1。 可以分为4种情况考虑,每种情况都 阅读全文
posted @ 2025-02-02 10:57 jxs123 阅读(4) 评论(0) 推荐(0) 编辑
摘要:求解Catalan(n)的四个公式: f(n)=C2nnC2nn1 f(n)=C2nn/(n+1) f(n)=f(n1)(4n2)/(n+1) \[f(n) = \sum_{i=0 阅读全文
posted @ 2025-01-22 15:43 jxs123 阅读(8) 评论(0) 推荐(0) 编辑
摘要:赛时3题,比上一把还要手速场。虽然手速慢了一些,但好在没掉分,并重新回到蓝名了。 A 很套路的题目。第一次移动没有用,把其余方向的移动距离求和加边长,取2倍就是答案。 code B 相当于告诉了你一个排列中任意一对i<j的前后位置关系,比如: g[i][j]=0,代表i阅读全文
posted @ 2025-01-22 14:44 jxs123 阅读(4) 评论(0) 推荐(0) 编辑
摘要:赛时三题,D就差一个显然的剪枝就能过了,qwq... A 显然第一步能选偶数就选偶数,之后只能选奇数。细节见代码。 code B 对于选取的任意四条边,设腰为x,短边为a,长边为b,则能形成等腰梯形的充要条件为:x出现次数>=2,且\(a+2*x>b\ 阅读全文
posted @ 2025-01-21 11:13 jxs123 阅读(5) 评论(0) 推荐(0) 编辑
摘要:E 一道感觉非常巧妙的二分。 可以将每种商品分开来看:第k次买商品Pi时,价格为(2k1)Pi。 这样,就将每种商品拆分为了多个实体的商品,并有自己的价格。想最大化购买物品的总数,一定是每次购买时贪心选择当前所有物品中最便宜的那个。 但模拟一定会TLE,可以枚举 阅读全文
posted @ 2025-01-20 20:40 jxs123 阅读(14) 评论(0) 推荐(0) 编辑
摘要:F dp + 组合数学 需要注意,数组中>1的数字个数不会超过log2k个。 先暂时不考虑1的摆放,只考虑所有>1的数: 设fl,i长度为l,乘积为i,且所有元素均>1的数组个数 考虑数组的最后一个元素d阅读全文
posted @ 2025-01-20 17:48 jxs123 阅读(4) 评论(0) 推荐(0) 编辑
摘要:最近刚学完主席树,找了道题巩固一下,还是非常有收获的。 题目链接:problem 若只让求f(1),则还是比较简单的——用权值树状数组维护dfs路径上的数,每次查一下在 递归路径中>当前结点值 的结点数量,累加起来即为f(1)。 可是题目要求将\(f(1)到f(n)\ 阅读全文
posted @ 2025-01-16 18:54 jxs123 阅读(2) 评论(0) 推荐(0) 编辑
摘要:VP赛时4题,发挥得比较不错的一场,并且这场也偏简单。 A 数数题,找好规律直接模拟即可 code B 简单排列组合题 显然总方案数为: n!/(a1!a2!...am!)a1am表示某种字符的数量 想最小化总方案数,只能最大化上式分母的值 阅读全文
posted @ 2025-01-15 13:21 jxs123 阅读(3) 评论(0) 推荐(0) 编辑
摘要:VP赛时三题。被AB题卡炸了,C题反倒发挥正常,D题可惜只想到了一半 A 没发现数据范围很小可以暴力 + 题干减号看成了加号,导致创造了二十多分钟才过A题的新纪录( code B 贪心 or 找规律,也是牢了一会儿。 显然要贪心地创造出能用上第二个操作的情景。所以从1位置出发,每次在右侧找一 阅读全文
posted @ 2025-01-14 12:08 jxs123 阅读(7) 评论(0) 推荐(0) 编辑
摘要:一道练习单调栈 + 单调队列的好题 题目链接:problem 对于求合法子数组数量的题目,可以先考虑传统的枚举右端点,二分左端点的套路。此题用这种方法恰好可行,因为对于一个序列,左端增加一个数不会让操作数更少。因此对于固定右端点,合法的左端点一定是一段区间。 所以现在问题转化为:用双指针枚举子区间左 阅读全文
posted @ 2025-01-13 17:11 jxs123 阅读(5) 评论(0) 推荐(0) 编辑
摘要:赛时4题,打得很差的一场。尤其是E题,赛时一直被卡,直到结束看群友的结论后顿然醒悟,不到3分钟码出并AC,只能恨自己赛时为什么这么sb... D 模拟 + 差分 从左到右枚举i,每一次枚举可以计算出第i个人有多少颗糖(a[i] + 前面i1个人给的糖数num 阅读全文
posted @ 2025-01-13 16:16 jxs123 阅读(10) 评论(0) 推荐(0) 编辑
摘要:手速场,前三题偏简单,后三题偏难。赛时三题,C题做法麻烦了些导致过得不是很快,但最后打得也不是很差。 A 两只青蛙相邻时,可移动的青蛙一定输:直接把该青蛙挤到边缘即可。 而是否相邻可以直接用二者初始间距的奇偶性来判断,因为显然先后手和间距奇偶性的关系是保持不变的,所以间距为0时的先后手可以直 阅读全文
posted @ 2025-01-13 09:36 jxs123 阅读(16) 评论(0) 推荐(0) 编辑
摘要:VP赛时三题,自我感觉发挥不错,唯一不满意的地方在于D题完全没有思路。 A 答案最多为2,因为最坏情况即为先将整个区间合并为一个数,若这个数不是0,则再将这个数变为0。 所以3种情况分类讨论即可: 全是0,则不需要操作 -> 0 只有一段非0连续区间 -> 1 不止1 阅读全文
posted @ 2025-01-09 12:29 jxs123 阅读(5) 评论(0) 推荐(0) 编辑
摘要:赛时做的,结果一直在卡D题。打得很失败的一场。 ABC 略。 D 题意可以转化为:给定m个黑色或白色的格子,其中: 每个黑色格子和(1,1)作为对角线顶点,构成一个黑色矩形 每个白色格子和(n,n)作为对角线顶点,构成一个白色矩形 要求任意一对黑色矩形与白色矩形不相交,判断是 阅读全文
posted @ 2025-01-08 09:41 jxs123 阅读(4) 评论(0) 推荐(0) 编辑
摘要:期末周之第三把网瘾(真是越来越放肆了...)。这次赛时了一把div 3 , 又一次只做出了A~E,写完E后剩下的题没时间看了(受了些寝室噪音的干扰,最后二十分钟才出)。赛后看了下F和G,感觉也是一时半会儿做不出来的题,遂来补题。 ABCD 这次前四题都很白给。ABC纯模拟题,D是枚举左端点二分右端点 阅读全文
posted @ 2024-12-28 01:15 jxs123 阅读(22) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
主题色彩