自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(99)
  • 问答 (1)
  • 收藏
  • 关注

原创 Educational Codeforces Round 168 (Rated for Div. 2) D. Maximize the Root

先考虑整体最优,显然根节点点权的最大值取决于其子树点权的最小值;再考虑局部最优,由于只能对根节点点权+1,仅当根节点点权比其所有子节点点权小时需要贪心地进行操作,操作结果为根节点点权和其子节点点权最小值取平均(向下取整)。题意简化:给你一颗有根、含点权树,可以对任意节点进行任意次以下操作:子树所有节点点权-1,子树根结点点权+1。求操作后,该树根节点点权最大值。由于从叶子结点向上操作是无后效性的,显然做树形dp,dp[i]表示以编号i为根节点的子树中所有点权的最小值。

2024-10-03 11:37:47 614

原创 Codeforces Round 975 (Div. 1) C. Tree Pruning

删节点有两个case,case1:直接将所有长链删到某一长度;case2:存在若干短链需要全删,其它长链删到某一长度。显然我们不能简单推导保留链的长度是多少,因此从1到n枚举深度,维护每个节点的maxDeep,预处理树上前后缀即可。本题也可以采用重链剖分+维护更新来做,实现比较复杂,暂不讨论。

2024-10-02 23:06:27 1002

原创 Codeforces Round 964 (Div. 4) G2. Ruler (hard version)

【代码】Codeforces Round 964 (Div. 4) G2. Ruler (hard version)

2024-10-02 17:53:25 925

原创 Codeforces Round 968 (Div. 2) D1. Turtle and a MEX Problem (Easy Version)

由于可以操作任意次,只需要找所有序列中第一个最小的非负整数即可,将该数贪心地取最大,可以保证任意一个初始值进行操作后都能取到该值。对于大于该数的初始值,不需要进行操作。

2024-10-02 17:46:46 864

原创 Educational Codeforces Round 169 (Rated for Div. 2) D. Colored Portals

目标点和当前点如果没有相同的颜色,则二分其余4种颜色组合。如果二分结果的编号在目标点和当前点区间以内,则直接输出|y-x|,否则要贪心地取最靠近该区间的编号。

2024-10-02 17:33:21 547

原创 Codeforces Round 975 (Div. 2) C. Cards Partition

显然划分后每组牌数(即size)不超过n,那么要求size最大,只需要从n到1枚举size即可。对每个size,计算出还需要购买的牌数,跟k作比较即可。

2024-09-28 21:49:26 1023

原创 AtCoder Beginner Contest 372 F - Teleporting Takahashi 2

依次迭代dp,在最后对答案累加时,由于缩点,每个点记录的是该点集的最小编号,显然只累加dp[i][k]是只考虑了一个点。设sz为点集中点总数,则该缩点对答案的贡献为dp[i][k-sz+1]+...+dp[i][k]。二维dp+二分+缩点。由于要求方案数,且一定存在一条最大环,可以在这条环上做dp。其中dp[i][j]表示路线以编号i结尾的方案数。度为2的节点显然有dp[i+1][j] = dp[i][j-1],其它点模拟即可。重新建图,原m条分支需要重新指向新下标,采用前缀+二分寻找新下标。

2024-09-24 11:25:59 1014 1

原创 2023 ICPC 江西省赛K. Split

显然本题答案为整序列最大值-整序列最小值-(k-1)个最大差分和,对于操作1,显然不会影响差分数组最大k个数的取值,仅会使差分数组中相邻元素改变顺序。那么我们sort差分数组,用后缀和记录差分和,那么对于每个操作2,我们只需要O(1)的时间复杂度。由于需要sort,整体的时间复杂度为O(nlogn)。

2024-09-04 20:51:10 795

原创 作业训练三编程题13. 导弹防御系统

但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,并观测到导弹依次飞来的高度,请计算这套系统最多能拦截多少导弹。拦截来袭导弹时,必须按来袭导弹袭击的时间顺序,不允许先拦截后面的导弹,再拦截前面的导弹。第二行,输入k个正整数,表示k枚导弹的高度,按来袭导弹的袭击时间顺序给出,以空格分隔。每组输出只有一行,包含一个整数,表示最多能拦截多少枚导弹。第一行,输入雷达捕捉到的敌国导弹的数量k(k<=25),

2024-08-27 17:00:08 382

原创 作业训练三编程题17. 带通配符的数

【问题描述】给定一个可以带通配符问号的正整数W,问号可以代表任意一个一位数字。再给定一个正整数X,和W具有同样的长度。问有多少个整数符合W的形式并且比X大?【输入形式】多组数据,每组数据两行,第一行是W,第二行是X,它们长度相同,在[1..10]之间。从高位向低位贪心,对于第一个?,前方W的位大于X的位,则直接输出答案。若小于,则输出答案0;若相等,先让答案加上。【输出形式】每行一个整数表示结果。,再令该位相等,递归判断后续序列。

2024-08-27 13:31:34 247

原创 作业训练三编程题19. ab串

给定一个由字符'a'和字符'b'组成的字符串,可以删除若干字符,使得剩下来的字符串满足前后段为a,中间段为b(aaa....aaabbbb.....bbbbaaa.....aaa),区段可以没有字符(ba,ab,b,aa都是合法的),求最长剩下字符串的长度。很显然,对于输入的字符串,我们需要贪心地取所有部分并判断是否满足题设条件。题设条件需要满足原字符串存在两个分界点,使前分界点前全为a,后分界点全为a,中间部分全为b。输入为一行一个长度不超过5000的非空字符串,字符串仅由字符'a'和字符'b'组成。

2024-08-27 10:40:51 223

原创 Codeforces Round 968 (Div. 2) C. Turtle and Good Pairs

对于子串,需要尽可能满足ABA的形式,我们只需要对原字符串中相同字符计数并分隔插入该字符即可。

2024-08-26 09:35:11 1414

原创 2023 ICPC 欧洲西南区域赛 (SWERC) A. Card game

显然只考虑一种花色是不完整的,每个花色的情况不相互独立。对于每种花色,对于其上数字+k*n,k为0,1,2,3,这样可消除花色的影响。对于C,数字始终+4n,这样可使得花色为C的卡片始终在末尾。由于移动卡片时只能移到首尾,显然存在某一子序列不需要移动,对于同一种花色,需要找到最长递增子序列(LIS)。对同一种花色,代价为M-LIS,M代表该花色卡片数量。对于LIS,采用的算法为线性dp+二分。故本题的时间复杂度为。本题为区域赛银牌题。

2024-08-23 12:05:20 1208

原创 Codeforces Round 967 (Div. 2) C. Guess The Tree

首先分析无向图含n-1条边,为树。我们令每次query为“?a b”,显然每次query为靠近a的二分,考虑令a为根节点,二分区间a不变,每次只变b。当且仅当query结果为a时a和b有边。由于题设条件中query次数不超过15n,我们可以直接枚举所有节点。

2024-08-21 20:49:53 1096 1

原创 2023 ICPC 亚洲区域赛 济南站 A. Many Many Heads

首先做数据预处理,将相同类型括号转换为0或1,原字符串转化为01序列。基于原序列,考虑以下几点:各元素相同的连续子序列长度大于3时,形如(((A)))可化为()(A)(),此时方案数不唯一。各元素相同的连续子序列长度为2时,形如((A))转化成()A(),此时显然不成立。但该种情况的序列个数大于2时,会出现(([[A]]))、(([]A[]))情况,方案数不唯一。其余情况较简单,此处不做证明。对该两种情况判断即可。

2024-08-20 17:27:48 1121

原创 2023 ICPC 亚洲区域赛 济南站 I. Strange Sorting

为奇数时,多余的元素不影响排序次数。将原数组分为多区间排序,该区间右端点需尽可能靠近原数组右侧,这样可以将更多的元素纳入排序范围。由于排序后区间元素可能大于区间右侧元素,将左端点右移进行下一次区间排序。,显然每次两两sort所需次数不超过。

2024-08-20 17:16:47 840

原创 2023 ICPC 亚洲区域赛 济南站 D. Largest Digit

显然,所求区间转换为[lb+la,rb+ra],遍历该区间会tle,当答案为9时进行剪枝即可。

2024-08-20 17:05:45 519

原创 2023 ICPC 亚洲区域赛 南京站 G. Knapsack

本题主要难点在如何选择免费的宝石,我们把宝石按w从小到大排序,则一定存在一个分界点m,使得右侧区间为免费取的区间,左侧区间做01背包。从0到n枚举分界点,右侧用堆维护。

2024-08-18 14:41:12 945

原创 Codeforces Educational Codeforces Round 169 (Rated for Div. 2) C. Splitting Items

最优策略下,每次每人都拿当前元素中最大的,故先需要排序。分类讨论,n为偶数时,A-B可能为0;n为奇数时,A-B不可能为0,最小为a[0]。对该两种情况模拟即可。

2024-08-16 12:08:41 737

原创 2024 ICPC 江西省赛 K. Magic Tree

可从1到m做线性规划,显然每次增加1列时方案数翻倍。

2024-08-14 17:38:47 705

原创 2024 ICPC 陕西省赛 M. Window Decoration

用map去重,找出相邻xi和yi即可。

2024-08-13 17:22:41 564

原创 2024 ICPC 陕西省赛 G. Disappearing Number

分治+类二分+数学。只需要计数0到n中含x的数即可,为了计算方便,我们将n拆分为多个首位为1其余位为0的整数。注意到以下规律:我们设。由于我们对n进行了拆分,首位不一定为1,需要特判,

2024-08-13 15:32:22 901 1

原创 EPIC Institute of Technology Round August 2024 (Div. 1 + Div. 2) C. Black Circles

我们只需要考虑一个离(xt,yt)点最近的点即可,由于半径增加速度和点的移动速度一致,只需要对比距离即可。通常在二维平面内对比距离需要平方以减少误差。

2024-08-12 22:36:48 672

原创 2023 江苏CCPC H. Neil‘s Machine

由于每次操作只修改后缀,令dp[i] = (s[i] - t[i]) > 0?'z' - s[i] + t[i] - 'a' + 1 : t[i] - s[i], 只需对dp数组计数dp[i]!= dp[i+1]的部分即可。

2024-08-12 12:00:57 981

原创 2023 江苏CCPC J. Similarity (Easy Version)

考虑到n,t,|s|都很小,可以直接暴力枚举。将所有字符串两两对比即可。

2024-08-12 11:54:08 527 1

原创 2023 江苏CCPC A. Today‘s Word

的后缀暴力构造,由于每次长度倍增,时间复杂度为。

2024-08-10 18:43:42 805

原创 Codeforces Round #727 (Div. 2) C. Stable Groups

先对输入的数据排序,两两作差,若差值大于x,将差值存入单调队列。记cnt为单调队列的大小,遍历单调队列,依次k-=x,若k小于0,说明此次操作(添加x个学生使原两数差小于k)不成立,输出操作次数+1即可;若k等于0,此次操作刚好完成,输出操作次数+2。对x=0需要特判,否则会wa on 3,别问我怎么知道的。

2024-07-27 11:20:11 543

原创 Codeforces Round #814 (div.2) A.Chip Game

【代码】Codeforces Round #814 (div.2) A.Chip Game。

2024-07-26 22:25:09 291

原创 Codeforces 781A. Andryusha and Colored Balloons

对任意节点dfs即可,只需要保证当前节点、父节点及所有子节点颜色不同即可。本题中边数为n-1,一定为树。

2024-07-26 22:22:44 265

原创 Codeforces 597A. Vitaliy and Pie

【代码】Codeforces 597A. Vitaliy and Pie。

2024-07-18 22:15:33 635 1

原创 Codeforces 1688A. Cirno‘s Perfect Bitmasks Classroom

对于任意一个数x,只要跟x不同的任何数,该数与x的异或一定大于零,考虑到最小,该数临界值为x+1。对于&位运算则需要在x+1的基础上枚举。

2024-07-18 22:07:46 973 1

原创 Codeforces 1407C. Chocolate Bunny

对于两个数a,b,若a%b<b%a,则b=b%a;若a%b>b%a,则a=a%b。

2024-07-17 22:19:38 481

原创 Codeforces 501C. Misha and Forest

【代码】Codeforces 501C. Misha and Forest。

2024-07-17 22:13:38 590

原创 Codeforces 584C. Marina and Vasya

【代码】Codeforces 584C. Marina and Vasya。

2024-07-17 21:48:31 356

原创 Codeforces 1155 C. Alarm Clocks Everywhere

即求一个首项为y,公差为p的等差数列。题中所给的x序列为该等差数列的子序列。的差值的最大公约数,求得最小的最大公约数即可。

2024-07-17 21:43:53 775

原创 Codeforces 1266B Dice Tower

【代码】Codeforces 1266B Dice Tower。

2024-07-17 21:34:37 853

原创 作业训练二编程题18. 棋盘

每个测试用例的第一行是一个正整数N(1

2024-07-11 11:11:51 264

原创 作业训练二编程题17. 飞行棋

刚刚开始时,两个玩家都站在第0格上,依次扔骰子,根据骰子显示的点数走相应的格子数。比如,棋盘一共有7(0~6)个格子,玩家在第4格上,扔出了6点,最终他会走到第2格上(4->5->6->5->4->3->2)。否则字符串为"GX"(X为0到N-1之间的整数)的形式,其中X表示玩家走到这个格子时,要马上飞到第X个格子。即一旦A玩家已经在某个格子上,B玩家又走到这里,A玩家则会被踢回第0格,而B玩家留在这个格子上面。第N-1个格子是终点,一旦一个玩家走到这个格子上,该玩家获胜,游戏结束。

2024-07-09 15:38:00 379

原创 作业训练二编程题16. 点球大战

【问题描述】在足球比赛中,有不少赛事,例如世界杯淘汰赛和欧洲冠军联赛淘汰赛中,当比赛双方经过正规比赛和加时赛之后仍然不分胜负时,需要进行点球大战来决定谁能够获得最终的胜利。每组数据的第一行包含一个整数N(1<=N<=18),表示双方总共罚了多少个点球,N=0表示输入结束。与足球的规则不同的是,它只先罚3轮点球,随后就进入一轮定胜负的阶段,而其他的规则完全一样。数据不保证点球大战一定结束,也不保证在结束以后立即结束这组数据(即:不用判断点球大战是否结束,只用把罚进的点球往比分上加即可)。本题是大小写相关的。

2024-07-09 13:20:15 536

原创 作业训练二编程题15. 电话号码

每一条都以朋友的姓名开头,然后跟着当前条目中的电话号码个数,然后是本人的电话号码。Vasya还认为,如果电话号码a是电话号码b的后缀(也就是说,号码b以a结尾),这两个号码被当作同一个电话号码,那么a被认为是无城市代码,它不应该被考虑。输出整理后Vasya朋友的电话号码信息。接下来的m行,包含以格式“姓名 电话号码个数 电话号码1 ... 电话号码k"的条目,号码间以空格分隔。Vasya有几本电话簿,记录了他的朋友们的电话号码,每一个朋友都可以有一或几个电话号码。输出Vasya的朋友的电话号码的有序信息。

2024-07-09 13:12:05 687

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除