自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [国家集训队] 聪聪可可 解题记录

看到题解区全是用容斥做的,但是我太蒻了不会,所以来水一发不用容斥的题解。

2024-06-06 14:50:57 469

原创 [SP10606] BALNUM - Balanced Numbers 解题记录

中每个数出现的奇偶次,记录下来,但是这样就需要开很多维数组,代码复杂度很高,所以考虑状压。是否合法,如果发现一个奇数出现过奇数次或者一个偶数出现过偶数次,那么直接返回。中,数位中的奇数出现过偶数次并且偶数出现过奇数次的数的个数。出现过奇数次还是偶数次。返回的时候检查当前状态。的“平衡数”的个数。

2024-04-23 16:32:19 368

原创 [SAC#1] 萌数 解题记录

那么我们只需要判断一个数中是否有这两种回文串就行了。在转移时需要注意如果一个数已经是“萌数”时(即。),后面无论填什么数,它的状态都不会改变。时,是否满足条件的“萌数”的个数。的回文串一定在它的正中间有形如。区间内的包含长度至少为。

2024-04-23 16:17:31 621

原创 [CF991E] Bus Number 解题记录

中每个数都有以它为开头的对应排列,那么以。开头的排列数就占所有排列数。次,那么总排列数就是。中每个数有多少个就行。

2024-04-18 16:22:45 749

原创 [ARC020C] A mod B Problem 解题记录

每次乘上转移矩阵,最终值为初始矩阵的。看到题解区没有用矩乘写的,所以我来。如果不考虑取模的话,那么这个数字。现在有一个很大的整数,由。对于这种转移柿子,我们可以。次,所以需要转移矩阵为。,所以可以设初始矩阵为。

2024-04-10 20:33:01 278

原创 [ABC107D/ARC101B] Median of Medians 解题记录

的所有子段的中位数取出来作为一个序列。的序列的中位数为这个序列中第。

2024-04-02 20:43:22 720

原创 [IOI2005] mea 解题记录

就确定了一个序列。,求出有多少个满足条件的序列。容易发现一个结论:对于序列。考虑一个非递减的整数序列。

2024-03-31 14:16:02 569

原创 [COCI 2023-2024 #2] Kuglice 解题记录

的算法,考虑记忆化搜索。我们暴力地去枚举当前这个人是从前面取还是从后面取,对求出来的值取最大值即可。因为这个序列是不断缩小的,且两端都可以删除,所以可以看成一个区间,考虑使用区间 DP。轮流从两端取球,如果取的球的颜色之前没有取过就得一分,输出最终比分。,表示当前取的人比另外一个多得的分数。那么就得不到分,因为之前已经取过了;(从左到右和从右到左),设当前取的球的区间在。用数组记录每种颜色的球的第一次出现的位置。个球,每个球有一个颜色。取的这个球可以得分,那么。,那么这个人的得分就是。

2024-03-26 16:24:47 767

原创 [COCI2008-2009#5] TRESNJA 解题记录

每颗樱桃树都有一个编号,定义一颗樱桃树上的樱桃数量为所有连续的数字乘以长度的平方的和。更新的时候如果当前选的数字等于。看到这种数据范围自然而然地就会想到数位 DP。,求这个区间内的樱桃数量。对于枚举的每一位,考虑填。,当前连续数字的个数是。,当前编号的樱桃数量是。

2024-03-26 14:58:48 745

原创 [COCI2007-2008#3] CUDAK 解题记录

之间,而这个区间内的数满足单调性,所以可以二分查找,找到最小值。,就是模板,接下来考虑第二个问~~(其实也很水)~~。直接枚举肯定不可能。有点像,所以我们考虑使用数位 DP。中有多少个数的各数位之和为。的满足条件的数的个数,因为。和最小的满足条件的数。,所以考虑记忆化搜索。

2024-03-25 21:48:35 662

原创 [COCI2016-2017#3] Kroničan 解题记录

个装有水的杯子,你需要通过从一个杯子向另一个杯子倒水,使这些杯子里面至多有。因为一开始所有杯子都有水,越到后面水越少,所以考虑倒序转移,即从。函数(我这里是手写的),对于二进制中。表示当前装有水的杯子集合为。对于最后统计答案,我们可以用。

2024-03-24 20:47:00 370

原创 [洛谷P2088] 果汁店的难题 解题记录

如果当前没有干净的榨汁机了,并且队列头部的果汁必须要清洗一台榨汁机才行,为了增加当前榨汁机能榨的果汁次数尽可能多(换的尽可能少),就需要清洗榨汁机中下一个同类果汁与当前订单距离最远的,因为它最长时间用不到。用数组记录下标,模拟即可。台干净的榨汁机,每台榨汁机只能榨一种果汁,如果要换果汁,那就得清洗一次。个订单,每个订单给出一种果汁,求最少清洗次数。如果直接模拟的话是肯定过不了的,考虑贪心。

2024-03-22 19:37:58 494

原创 [ABC206E] Divide Both 解题记录

正难则反,考虑用所有的满足第一条性质的数对的数量减去不满足第二条性质的数量。的时候就会减去一个,这样就保证了贡献不会重复(不清楚的可以手模)。容易想到,如果不考虑第二条性质,那么我们可以枚举因子。为偶数,就减去当前贡献,否则加上。最后减去不满足第二条限制的贡献:对于每个因子。,然后用加法原理,两两配对,累加到答案中。,这个时候就需要我们标记了。个数字两两配对,即可求解出。但是这样会有重复,如:当。,求满足以下条件的数对。的质因子的个数,如果。

2024-03-22 14:24:30 1565

原创 [POI 2003] Smugglers 解题记录

,每种金属有自己的单价,金属之间可以互相转换,编号为。对于两个部分之间的连接,其实就是扣税的过程,直接将。”,很容易就可以想到建图。可以把图分为两部分:过边境前和过边境后。问要把金子带过边境,需要的最少的代价。,如果可以转换,那么就把。最后跑一遍最短路即可。

2024-03-20 21:16:44 647

原创 [CF0526C] Om Nom and Candies 解题记录

因为我们是通过枚举的方式来找到最优解,而最优解一定在解空间的边界上取得。所以,我们只需要在边界上进行枚举即可找到最优解。其实我们可以直接枚举选几颗红糖,剩下的重量全选蓝糖(枚举蓝糖同理),每次更新最大快乐值就可以了,最多枚举。题解区的大佬都是用什么根号分治和剩余系来做的,像我这种蒟蒻根本看不懂,所以我就想到了一个暴力的做法。次,就可以覆盖到整个解空间边界,从而找到最优解。有红色和蓝色两种糖果,每颗红糖重。​ 的快乐值,吃一颗蓝糖可以获得。克糖果的情况下能获得的快乐值。

2024-03-19 21:07:43 1103

原创 [COCI2009-2010#1] MALI 解题记录

的最大值配对,这样的数对一定是最小的,只需要找出最大的数对即可。,将这些数字两两配对,使得配的数对的两个数的和的最大值最小。

2024-03-18 20:48:59 620

原创 [COCI2010-2011#2] IGRA 解题记录

用双端队列记录每一个字符的位置,再用一个数组记录每个位置的字符是否用过,如果用过就直接在队列中弹掉,避免重复遍历。的字符串尽可能小,那么每次取的字符就得尽可能小。的字符串尽可能大,那么每次就留大的字符放在后面。轮流取一个字符组成自己的字符串。

2024-03-17 20:21:08 822

原创 [COCI2016-2017#2] Prosječni 解题记录

的矩阵,使得每一行/列的平均都在这一行/列当中,并且矩阵内各个数字不相同。为奇数时,矩阵内的各个元素就是。观察样例就可以轻松发现:当。

2024-03-16 14:47:24 666

原创 [COCI2018-2019#1] Zamjena 解题记录

看到大佬的题解都是并查集,可是我不会,所以就暴力做了出来。,于是我们可以重复检查 100 遍,确保每个数都被更新到。记录每个变量应该变什么,然后遍历一遍查看是否冲突。怎么记录每个变量应该变成什么呢?结果 59 分,检查发现是有些情况一次更新不完,,其中包含数字和变量,变量名为一个字符串。中的变量标记为一个特定的数,再用一个。相等(同一个变量名只能使用一个值)。问是否可以通过将变量赋值使得。

2024-03-15 16:14:50 1201

原创 [COCI2021-2022#1] Kamenčići 解题记录

因为只剩一个石子的状态是确定的,所以区间从少往多转移,即区间。由于相邻的两个状态相反,所以转移的时候需要取反。轮流每次从两端取出一个字符,先取出。的失败,求先手必胜还是必败。,当前状态是必胜还是必败。,当前轮到的人已经取了。

2024-03-15 15:22:12 965

原创 [ABC221D] Online games 解题记录

一开始想到用差分区间修改,然后用循环遍历统计,但是数据范围并不允许我们这样做,所以考虑优化。个位置被覆盖了几次,然后再通过这个区间与相邻区间的长度的差直接求解,时间复杂度。因为差分可以通过前缀和还原,所以我们可以使用一个变量累加记录第。

2024-03-14 21:17:23 705

原创 [AGC019B] Reverse and Compare 解题记录

依次考虑区间的长度,把每个长度的答案累加起来(其实就是。的位置,把每个位置的答案累加起来(还是加法原理)。,并将其翻转一次,求能够组合出多少种不同的字符串。对不合法答案的贡献就是考虑两个。,你可以选择任意一个连续区间。),然后减去不合法方案就行。,我们可以发现,翻转区间。得到的字符串是一样的。如何找到不合法方案呢?举个例子,对于字符串。

2024-03-12 20:49:42 806

原创 [PA2020] Punkty rankingowe 解题记录

大,即:两个区间和最大值相加一定大于等于长度等于它们两个长度之和的区间的和最大值。如果不满足这个条件就不合法。个元素的最大值,求这个序列,可能有多种解。如果有解,输出任意一种;我们假设所有情况都是有解的,那么对于一个序列。个数的最大值,我们只能添加一个数,使得前。当我们按照上面的构造柿子构造到最后一项时,项的最大值,也就是题目所给的。,那么这个构造柿子就显而易见了。接下来我们再来考虑不合法的情况。项的和,那么如果在更新到第。的题目首先就得想到构造。发现在最后四项的时候和为。

2024-03-11 21:45:51 554 1

原创 [入门赛 #21] 星云 hard ver. 解题记录

因为 hard ver. 添加了多测,所以暴力是肯定做不了的,这个时候我们升级一下算法,改用使用记忆化搜索的数位 DP 即可(不懂的详见。本题唯一需要注意的点就是要求的数是正整数,所以在填完数位的时候判断一下是不是 0 即可。其次,本题要求的数字要求很简单,只需要记录各数位之和,所以不需要判断前导 0。站在数位 DP 的角度来看,这道题可以说是很水了。位以下的数,所以不需要判断上限。位数内,各数位之和不超过。一道很水的数位 DP。

2024-03-10 18:59:41 740 1

原创 [AGC018B] Sports Festival 解题记录

直接考虑暴力枚举,首先假设不删除任何比赛,此时就必定有一个参加人数最多的项目,那么就删除这个项目。这道题首先不要被题目中的“最多的最少”给迷惑了,其实观察数据范围就可以发现,该题目支持。现求使参加人数最多的项目的人数最少的关闭方案,输出最少人数。的算法,所以根本不需要什么二分答案。个项目被关闭了,那么就参加第。项目使其不能被参加,其中第。个人参加,你可以关闭至多。重复这个过程即可,最多删除。

2024-03-09 11:30:15 755

原创 [AGM 2022 资格赛] 地牢 解题记录

首先可以发现一个显而易见的规律,那就是打敌人先从能力值小的开始(并且也只能从能力值小的开始),不然可能会出现在某一关遇到能力值大的敌人,但是由于上一关遗漏了某些能力值小的敌人而无法击败。对于这种迷宫走格子的问题,我们一般考虑使用搜索。在搜索的过程中标记每一关可以打到的敌人,按升序排序后累加答案就行。代表每关的出口,走到后传送到下一关的相同位置。有了这个发现后,我们再来考虑哪些敌人可以被打到。的能力值才能战胜他,并获取他的能力值。,每个点只遍历一遍,所以时间复杂度最多。代表一个敌人,能力为。

2024-03-08 17:04:15 1261 1

原创 [ARC115B] Plus Matrix 解题记录

中的每一行的差分数组都相同,那么这个矩阵就有解,否则无解。那么进一步可以得出,如果有一个基准数组。

2024-03-07 21:50:03 657 1

原创 [CF1065C] Make It Equal 解题记录

高度,消耗的能量值为切割的高度。并且消耗的能量不能大于给定的整数。这时问题就从原来的横着切割变成了纵向切割,每个塔的高度。现在可以对其进行切割操作:选定一个整数。,用差分区间修改,然后前缀和还原数组。座塔组成的建筑,编号为。

2024-03-07 21:35:56 924 1

原创 [CEOI2018] toy 解题记录

所以根据乘法原理,每个集合的贡献就是。题目描述给得非常的绕,看了半天才看懂。通过观察样例可以发现,对于集合。这时候就会惊奇地发现:这不就是。,它对答案的贡献都为。于是就可以愉快地切了此题。

2024-03-06 21:48:27 644 1

原创 [AGC004B] Colorful Slimes 解题记录

设 dp_{i,j} 表示获得第 i 种颜色,使用 j 次魔法的最小代价。状态转移方程:dp_{i,j}=\min(dp_{i,j-1},a_t),其中 t=(i-j+n)\%n。答案 ans=\min\{k \times\ x+\sum^n_{i=1}dp_{i,k}\}。因为 dp_{i,j} 只与 dp_{i,j-1} 有关,所以我们可以考虑优化一维,设 dp_i 表示获得第 i 种颜色的最小代价。所以优化后的状态转移方程:dp_i=\min(dp_i,a_t)。初始状态:dp_i=a_i。

2024-03-06 20:06:13 925 1

原创 [COCI2008-2009#2] SVADA 解题记录

摘椰子的猴子有 n 只,需要先用 a_i 秒找椰子,再用 b_i 秒摘椰子。开椰子的猴子有 m 只,需要先用 c_i 秒找工具,再用 d_i 秒开椰子。现给你一个正整数 t,为摘椰子的猴子与开椰子的猴子所用的时间和,求在什么时候开的椰子数量等于摘的椰子的数量。//使用c[i]的时间找工具,剩余(t-x-c[i])的时间每d[i]秒开一个。//使用a[i]的时间找椰子,剩余(x-a[i])的时间每b[i]秒开一个。if(check(mid)) {//摘的椰子>开的椰子,所以范围往小的缩。

2024-03-03 20:46:08 898

原创 「蓝桥杯 2020 国 C」补给 解题记录

「蓝桥杯 2020 国 C」补给 解题记录

2024-02-05 21:41:56 954 1

原创 C++算法竞赛常用模板-致敬爱的模板们

C++算法竞赛常用模板

2023-10-13 21:17:54 613

原创 [USACO06DEC] Milk Patterns G

农夫John发现他的奶牛产奶的质量一直在变动。经过细致的调查,他发现:虽然他不能预见明天产奶的质量,但连续的若干天的质量有很多重叠。我们称之为一个“模式”。 John的牛奶按质量可以被赋予一个0到1000000之间的数。并且John记录了天的牛奶质量值。他想知道最长的出现了至少次的模式的长度。比如1 2 3 2 3 2 3 1 中 2 3 2 3出现了两次。当K=2时,这个长度为4。

2023-07-17 19:22:25 144 1

原创 「AHOI2009」维护序列

老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成。 有长为N的数列,不妨设为a1,a2,…,aN 。有如下三种操作形式:(1)把数列中的一段数全部乘一个值;(2)把数列中的一段数全部加一个值;(3)询问数列中的一段数的和,由于答案可能很大,你只需输出这个数模P的值。

2023-07-12 19:20:59 136 1

原创 「IOI2001」Mobile Phones

假设Tampere区域的第四代手机基地站运行如下。该区域被划分为一些正方形(方阵)。这些正方形构成一个S╳S的矩阵,矩阵行和列的编号从0到S-1。每个正方形包含一个基地站。由于一个手机可能从一个正方形移动到另一个正方形,或者手机可能开机或关机,所以,在一个正方形内正在使用的手机数目是随时变化的。有时,每个基地站需要将正在使用的手机数的变化用矩阵的行和列报告给主基地站。请你写一个程序,接收这些报告并回答有关任一个长方形区域内当前正在使用的手机总数的查询。

2023-07-12 19:20:15 134 1

原创 STL链表(list)详解

在看了刚刚的代码后,相信大家都会发现“迭代器”这个词语反复出现,它是什么意思呢?我们不妨先想一想静态链表。在静态链表中我们一般会用两个数组存储(如下图)其中的“指针域”就可以理解为迭代器,它是指向下一个数据的指针,如这个链表其中l.begin()就是nex[0]l.end()就是nex[5]

2023-03-22 07:17:55 1484

原创 迷宫问题题解

设有一个N*N(2

2023-03-05 12:11:02 418

原创 南蛮图腾题解

自从到了南蛮之地,孔明不仅把孟获收拾的服服帖帖,而且还发现了不少少数民族的智慧,他发现少数民族的图腾往往有着一种分形的效果,在得到了酋长的传授后,孔明掌握了不少绘图技术,但唯独不会画他们的图腾,于是他找上了你的爷爷的爷爷的爷爷的爷爷……帮忙,作为一个好孙子的孙子的孙子的孙子……你能做到吗?

2023-02-28 21:21:38 140

原创 田忌赛马(C++)

每次比较时: 1. 如果田忌当前最强的马比齐王最强的马快,就使这两只比赛,显然是最优秀的 2. 如果田忌当前最强的马比齐王最强的马慢,就使田忌目前最弱的把齐王最强的比赛,也就是所谓 的”下等马对上等马“

2023-02-04 21:02:36 929

空空如也

空空如也

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

TA关注的人

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