自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 Eud166

思路:首先合法序列的要求:我们假设’(’ 为1,')'为-1,序列合法则要求前缀和一定不为负数且总和为0。现在要求改变[l,r]的序列方向,如何确保改变之后仍然是合法序列?bal[i]表示1-i的前缀和平衡度。题意:给定一个合法括号序列,问改变[l,r]范围的括号方向之后还是合法序列的个数。所以我们枚举i,如果当前平衡度前面出现过,说明这些段合法可以翻转;要求在i属于[l,r]内,改变方向后的。,则不合法,我们删去这段l起始的数据。

2025-10-01 23:15:04 547

原创 9.30 按位贪心+dfs 模拟

我们通过双层循环暴力寻找度数满足的情况,考虑到有可能头部和尾部会同时连一条边,所以我们用标记,让头部连的标记1,尾部连的标记10,都连的标记11。最后11有多的再按需分配即可。不够则清空标记往下继续找。题意:给n点m边,找到一个头部连l条边,尾部连r条边的图案。**二、01Trie。**思路差不多,具体看代码实现。如果每个数这一位都是1,那么我们让x这位也为1;如果既有0又有1,我们考虑两种情况然后往下搜索。如果每个数这一位都是0,我们让x这位也为0;最小,输出这个最小值。注意细节,不要写炸。

2025-09-30 23:52:25 517

原创 9.29 按位分组/字典树+递归

因此我们容易找到这样一种方式:先将所有数按最高位分组,枚举每组数,答案=枚举组的数+比他高的组数+(如果不是第一组可以保留一个低位组),找到最大值就是可以保留的最大个数。当然还要注意,高位如果只有一个,只能连向低位,如果低位也只有一个,也只能连向高位,这样就互连成环了。容易发现,因为高位⊕低位始终>低位,而低位⊕低位始终<高位,这意味着如果有多个低位,他们会内部相连而不会向高位连边。比如1 3 9 10 17, 1和3互连成环,所以最多只能出现一个低位的组,对高位组无限制。,它会向序列中的满足。

2025-09-29 23:14:21 726

原创 9.28 字典树+dfs

题意:给定n个字符串,再给m个字符串询问,问每个在n个字符串中是否存在只有一个字符不同的字符串。考虑字典树建树,如何询问呢?题目给了只有abc三种字符,所以容易想到暴力dfs。

2025-09-28 23:43:15 484

原创 9.27 字典树+01Trie

我们可以通过枚举i,一个一个将a[i]加入Trie树,这样就相当于把i作为右端点去匹配满足的左端点,然后对于所有满足的左端点取最大值,那么l-r+1就是最小的。一样求异或和>=k,不过那个求的是数组个数,这个求数组最小长度,不过判断是否>=k的核心是一样的,关键在于怎么找到最小。而后缀是c,b->c,a->b->c,显然是两个。题意:给定字符串s1,前缀s2,后缀s3,找s1中以s2开头,s3结尾的子串数量。题意:给定n个数和一个k,求n个数中子数组异或和>=k的最小长度。因为是多测,注意清空即可。

2025-09-27 23:42:22 641

原创 9.26 二分+构造+01Trie

化简式子可以得到实际问题:构造一个数列,1-n每个数字出现两次,保证1- n-1这些数,每两个数之间距离恰好为n-i(i为数字)。题意:给定x为血量,y为终点。+n血(视为n次操作),或者选择休息+1血。可以c b a a b c这样构造出距离1 3 5的数列,然后由于对n无限制,在这中间插入一个n,就变成了2 4 6。思路:我们不难发现步长都是1,所以到终点走的步数是固定的,只是消耗血量不同,所以我们可以对休息的次数进行二分答案。连续t步的次数为mid + 1 - y % t,t+1步次数为y % t。

2025-09-26 23:56:09 609

原创 9.25 数论+贪心+01Trie 构造

其次,根据哥德巴赫猜想,一个>2的偶数可以拆分为两个质数之和,而且根据打表我们可以发现一个质数必然在1-n之内。从a-z找出现过的且能作为首字符出现的最小字符,恰好我们记录了它后面的字符,按顺序一直记录即可。题意:输入一个n,对于1-n染色,确保相同颜色的数字和为质数,问使用最少颜色方案。比如如果a后面是b,那么b就不能出现在其他字符后,a后也不能是其他字符。题意:给定一个n-1个数的数组,要求你构造一个1-n的序列b,保证。最后再判断,如果前面出现过的字符,但是答案没有出现那么输出NO。

2025-09-25 23:51:41 831

原创 9.24 贪心 构造

题意:给定一个字符串和整数n,确保每n长度的字符串都会出现在答案字符串中,求答案字符串的最小字典序。我们可以考虑通过已获得的字符来判断是否满足条件,当前可取的字符到上一个字符的距离如果>=n就无解。那么说明我们可以讨论26种情况即可,而对于每种情况我们都能选择大量的字符,既然已经获得字符了,除去选择所有小于当前的字符,如果等于当前,我们想的是选的越少越好,所以只有在必要的情况下选择。我们容易发现:如果选择了一个b,那么必然要选择所有的a保证这种情况字典序是最小的。,这是最小值,如果n比这还小一定无解。

2025-09-24 23:47:44 491

原创 9.23 构造+dp

然后对前者,想要最优,我们总是希望当前的右边会小于下一个的左边,所以我们对前者按y值小到大排序;如果我们想加入一个B联通区,可以在A区域单独加入一个,让A把B隔离出一个区域,以此类推。数据很小,可以直接枚举所有状态,然后类似处理最长上升子序列的模式处理。对后者,则希望当前的右边大于下一个左边,所以对后者按y值从大到小排序。考虑将50 * 50的方格切成4个25 * 25,分别存入ABCD。可以想到分类处理,将左边大于右边和右边大于左边分开。只需要注意放的时候,一个一个间隔地放不要相连。

2025-09-23 22:08:31 701

原创 9.22 一些构造

思路:只有没有出现的点对才有可能相等,所以我们找到一个没出现过的点对,让它们作为最小值1,2,这样能保证它们比其他数都更小,并让它们在b数组中=1,这样不会影响点对关系。考虑到第一个大于1e5的二的幂是1<<17,所以固定为1<<17 1<<18 1<<18^1<<17即可。这题是上课写的,思路出的很快,但是下课之后敲代码出现了各种各样的问题,调试纠错了半天,深感码力不足。思路:容易想到,连续操作两次,选择n-1个相同的位置,另两个不同,等价于将两个数变成相反数。第一列的每个数等于行异或,其他全部赋0。

2025-09-22 22:16:44 1067

原创 9.21 几个构造

容易发现答案只和最小那个有关,所以只要让长度最小的子数组满足就行,其他的位置按顺序填入。还有特殊情况,比如3列的情况下,3不能直接到4,说明相差为1也不一定就是正确的。如果还没有确定列数,那么第一个相邻之差d不为1且不为0的就是列数。数字排列只和列数有关,所以行数可以固定为1e9。这种情况下,更小的那个数一定是d的倍数,特判。如果后续的差值既不为1也不为d,说明无解。写复杂了,好像可以直接取模写。

2025-09-21 22:09:30 189

原创 Edu49 D 基环树+贪心

题意:老鼠可能出现在任意位置,给定一个a[i]表示陷阱消耗,b[i]表示老鼠到i之后下次到的地方。先求出从i开始的环,设一个为起点,在这个环中遍历找到最小的一个a[i]作为这个环的贡献。思路:如果老鼠陷入一个环,对于这个环我们只需要选出一个最小的a[i]陷阱就够了。

2025-09-20 23:49:58 204

原创 CF1050 F

题意:给n个长度不定的数组,你可以任意顺序堆叠,考虑重力的情况下,求堆叠后最底下一层按字典序最小的数组。每次排序后的第一个一定是我们需要的,比如第一次的第一个数组,如果不是最长的,就先全部存入答案。然后可以考虑截取之前长度后的数组,放入一个新的二维容器,反复排序存值。我们先找出所有数组的最大长度,最终数组长度一定是最大长度。思路:首先很容易想到排序就是字典序,具体怎么实现呢?

2025-09-19 10:45:18 296

原创 Edu182 A、D

因为是切成三部分,要求各部分之和%3值相同或都不同,如果想要有解,总和一定为 3 的倍数。(上取整),但这样对于每个原本没有的价格需要消耗 k 标签成本。如何判断是否已经存在呢?我们可以考虑用前缀和维护每段区间数字出现的次数。所以如果是 3 的倍数,一定有解且为任意两个点;思路:总收入=所有商品便宜之后的价格+消耗的标签成本。两者都不固定,但是都和 x 相关,我们发现。题意:给n个商品,你可以让所有商品价格变成。之后的数原本就存在,那么不需要消耗k。作为签到,暴力很好写。

2025-09-19 10:39:34 348

原创 2023CCPC秦皇岛站

这样第一列是 1 和 n,

2025-09-11 19:16:33 432

原创 2024CCPC区域赛哈尔滨站

M.Weird Ceiling签到。简化题意:f(a,b)f(a,b)f(a,b):如果 ddd 是小于等于 bbb 的 aaa 的最小约数,f(a,b)=a/df(a,b)=a/df(a,b)=a/d;C. Giving Directions in Harbin模拟。一开始想用 map 赋值比大小来表示转向,但是忘记这是环形,所以 wa 了。G. Welcome to Join the Online Meeting!bfs。写的有点史。入队顺序无所谓,所以先找一个非调试者入队。然后如果他邀请的人

2025-09-04 23:13:32 379

原创 2024ICPC区域赛昆明站

如果当前行数 i 为奇数,可以先打乱顺序,比如尝试第一个数不变,其余数字倒序;,减一是因为前面造成的一点伤害自己也会受到伤害,满足则说明这个随从会发动亡语。如果 i 为偶数,该行数字全部倒序,随便举一例可以显然证明满足题意。:顺序输出数字,行间数之和为奇数,列间数之和为偶数,3、如果一开始就单调递增, Alice 赢。然后从小到大排序,复制一份,确保范围内有。,Alice先手则可以调回获胜;的随从可以先造成一点伤害。,一定是 Alice 赢。,说明这个随从会发动亡语。,则 Alice必输。

2025-09-04 23:08:14 482 2

原创 2025CCPC陕西省赛

所以想到先将两种操作分开,按从大到小排序,然后 dfs 搜索找最大值即可。,说明我们不需要涂满,可以从前涂到连续段的起始,从连续段的末尾涂到后。可以发现添加字符能组成 lose 的字符串是有限的,不妨用。存储记录一下各种串的个数,放进堆里,枚举即可得到答案。思维题,首先容易发现最左端和最右端一定无法删除。首先首尾的连续段不用涂色,记录断开连续的首尾位。一个较大的数,对后续的增长更有利。,无私一只选 A,其余选 B,那么。,最后一行加上首尾两个数即可。,然后贪心地求能减少的值。的操作,求结果最大值。

2025-09-04 22:52:39 1121

空空如也

空空如也

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

TA关注的人

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