- 博客(144)
- 收藏
- 关注
原创 梦幻布丁 启发式合并
n 个布丁摆成一行,进行 m 次操作。每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色。开一个P数组 维护每个颜色对应的集合链表 每次把小的集合插入大的集合 然后修改颜色和P的对应关系。先遍历,修改颜色,然后直接把这个集合(链表)挂在另一个集合(链表)头/尾。第二行有 n 个整数,第 i 个整数表示第 i 个布丁的颜色 ai。例如,颜色分别为 1,2,2,1 的四个布丁一共有 3 段颜色.第一行是两个整数,分别表示布丁个数 n 和操作次数 m。对于不同的颜色的集合,进行合并操作,
2025-07-29 15:42:25
48
原创 (AC)小塔的公约数
小塔是数学系的一名学生,最近她参加了一个数学研究项目。在研究数论问题时,她遇到了一个有趣的整数对性质:对于两个正整数a和b,当它们的最大公约数等于它们的差的绝对值时,即gcd(a,b)=∣a−b∣,这样的数对具有特殊的数学性质。为了深入研究这个性质,小塔决定编写一个程序来计算给定数列中满足这一条件的数对数量。你能帮助她高效地解决这个问题吗?给定一个包含n个正整数的序列a1,a2,...,an ,计算有多少对索引i,j,其中1≤i≤j≤n,满足:gcd(ai,aj)=∣ai−aj∣。
2025-07-29 13:57:55
46
原创 只因 找规律
有一张N个点的图,点的编号为1~N,i号点和j号点(1≤i<j≤N)之间有一条双向边,当且仅当i+2=j或i+3=j。艾斯洛克打算从一个点出发,走一条路径,经过N个点中的每个点恰好一次。你需要按顺序输出路径上的每个点。如果有多条路径,输出任意一条即可;因为艾斯洛克是永远滴神,所以如果不存在满足条件的路径,你只要输出-1就好了。
2025-07-28 17:13:21
95
原创 绳子切割 图论
Nanarikom 正在切割绳子。Nanarikom 有一根横梁(使用编号 0 表示)和 n 个苹果(使用编号 1 到 n 表示),并且使用 m 根绳子将它们连接,每根绳子的两端分别连接一个编号在 [0,n] 内的物品。如果一个苹果可以经过若干绳子与横梁直接或间接连接,则这个苹果处于悬挂状态。初始状态下,所有苹果都处于悬挂状态。Nanarikom 可以按任意顺序依次切割绳子,被切割的绳子将不再构成连接。如果某一次切割操作后,编号为 i 的苹果不再处于悬挂状态,则这个苹果会落在地上。
2025-07-28 15:15:16
103
原创 (AC)真爱口上
Nanarikom 在学习口上。在日系偶像表演中,观众常在歌曲间奏的空档喊出约定俗成的口号,「口上」也是其中的一类。为了符合间奏的节拍,口上往往如同诗句一般被编写成长度合适的句式。但是,其中的长度指的不是音节的数量,而是另一个语音单位「Mora」的数量。为了统计一句日语中有多少 Mora,我们可以应用以下规则。其中,双斜杠记号表示中间的内容是我们约定的一种日语注音方式。
2025-07-28 14:50:21
261
原创 (AC)储值购物
Nanarikom 正在阅读童话故事。故事的主人公是正在计划购物的豆娃。豆娃的钱包中有若干张储值卡。在一次购物中,豆娃可以支出 x 单位货币,其中 x 需为不大于 W 的正整数。豆娃计划进行若干次购物,使得总支出 ∑xi 恰等于给定值 V,而购物的次数和每次购物的支出可以自由分配。Nanarikom 注意到,尽管总开支不变,但不同的购物方案可能使得豆娃获得不同数量的储值卡。现在,Nanarikom 想知道,在所有的购物方案中,豆娃获得的储值卡数量的最大值。
2025-07-28 14:11:37
123
原创 (补题)森林迷宫 树+DP
在一片神秘的森林中,有一座古老的迷宫,连接着 n 个魔法节点,节点编号从 1 到 n。这些节点通过 n−1 条双向魔法路径相连,形成一个树形结构(无环连通图)。冒险者需要从起点节点 s 出发,找到一条通往终点节点 t 的路线。每条路径都有独特的魔法属性:从节点 u 到节点 v 可以获得 p 分,从节点 v 到节点 u 可以获得 q 分(p 和 q 可以是正数、负数或零)。然而,迷宫的魔法规则限制每条路径的每个方向(u→v 或 v→u)最多只能走一次。
2025-07-28 11:09:29
238
原创 (补题)拼图游戏
克利切洛夫斯基最近制作了一款拼图游戏,在这个游戏中共有K种不同的拼图,克利切洛夫斯基将他们放置在了一个大小为N∗M的网格中,每个格子放置一个拼图。做完这些以后他就去睡觉了,但半夜有一个小偷潜入了他的房间,打算偷走这个拼图。由于房间太黑,小偷看不清这个拼图的具体尺寸,就从网格的左下角开始偷走了大小为X∗Y的一块网格,其中X和Y是任意指定的值,但不会超过原网格的大小,也就是说1≤X≤N,1≤Y≤M。
2025-07-27 21:04:54
222
原创 独到寒山顶
克利切洛夫斯基同学打算在元宵节这天做一些特别的事情庆祝节日,于是他冒着零下十度的严寒爬上了花果山的山顶。在俯瞰美丽的城市风景之后,他发现自己忘记了回去的路。好在高处的视野很开阔,他打算下山前规划好要走的道路,防止出现意外。山上有若干条按顺序并列的山间小道,用1到N标号。每条小道长度都为M格,每一步可以从第i条小道的j格穿行到第i+1或第i-1条小道的同一格上(需保证穿行后的小道标号在1到N之间)。当然也可以在同一条小道上沿着连续的格子进行上下移动。
2025-07-27 12:56:07
154
原创 (AC)缓存系统
快码公司的硬盘遇到了故障!工程师克利切洛夫斯基经过排查发现,故障的原因是他们的OJ把过多的数据存储在了硬盘上,读取量太大导致硬盘发生了损坏。为了彻底解决这个问题,公司领导决定开发一个缓存系统。缓存系统可以将一部分访问较多的数据存储在内存而不是硬盘,来减少硬盘的压力。但内存的成本相比硬盘要高很多,所以他们需要你来帮忙开发一款高效的缓存系统,既能够满足存储在内存中的数据总大小不超过内存的容量,又能够尽可能多的减少硬盘的每日读取次数。
2025-07-27 11:14:37
306
原创 (AC)架子鼓
小K正在学习架子鼓。因为他刚刚开始,所以还只会军鼓和底鼓。他面前有两段乐谱,分别表示军鼓和底鼓的节奏,他需要同时演奏这两段节奏。每段乐谱有若干个音符,每个音符有一个时长,用一个分数p/q来表示,其中p,q是互质的正整数,并且q∈{1,2,3,4,6,8,16}。对于每个音符,小K需要在这个音符对应的时长开始的时刻,击打对应的乐器。特殊地,在时刻0,小K一定同时击打军鼓和底鼓的第一个音符。请问小K有多少次同时击打军鼓和底鼓。
2025-07-27 10:44:19
128
原创 SET 用法
set是标准模板库(STL)中的一个有序容器,用于存储的元素,且元素会(默认)。它的底层实现通常是红黑树(一种自平衡二叉搜索树),因此插入、删除和查找操作的时间复杂度都是。
2025-07-26 14:20:58
307
原创 Traffic Lights set的使用
multiset 删除原有路段并加入新路段,快速查找当前最大值。使用set 快速找到每个节点插入后的左右节点。cin cout超时。
2025-07-26 14:06:33
389
原创 Collecting Numbers II
如果里面有数据重复需要去掉(用set,手写一直错不知道哪里错了反正一直错,卡了一晚上我服了哈哈最后一个set就过了,受不了,大概是已经四了吧)计算出初始轮次后考虑x[a],x[a]+1,x[b],x[b]+1。上一题的加强版,加入了数字交换。
2025-07-26 09:59:55
291
原创 Collecting Numbers
对于每个数字 i,统计数字 i-1 在数组中出现的位置是否在 i 之前。如果 i-1 在 i 之后出现,说明我们需要多一轮才能收集到 i。由于轮次的增减只取决于 “当前数字与前一个数字的位置关系”,且这种关系在遍历过程中可以被依次、独立地判断,因此。
2025-07-25 14:19:56
142
原创 Missing Coin Sum 硬币可以组成的连续面额上限
题目描述输入输出样例输入Copy52 9 1 2 7样例输出6s变量记录连续最大上限将硬币升序排序,每个硬币与s+1比较。如果硬币比s+1大,那么之前已经可以拼成的所有组合中都不可能与这个硬币构成值为s+1的组合。(硬币=s+1,可以继续连续;=s,可以与1组合,达到继续连续的效果,以此类推)贪心。
2025-07-25 13:18:31
159
原创 Stick Lengths 求调整不同长度为同一长度最小花费
当数据中存在极端大(或小)的值时,平均数会被拉向极端值,导致总代价增加。在 “使所有数值调整到同一值的总代价最小(代价为绝对值差)” 的问题中,
2025-07-25 11:05:13
117
原创 Maximum Subarray Sum 最大连续和
Kadane 算法的核心思想是:遍历数组时,对于每个元素,判断是将其加入当前子数组,还是以它为起点重新开始一个子数组,始终保持当前子数组的和最大。可以使用 Kadane 算法高效解决,时间复杂度为 O (n)。
2025-07-25 11:03:09
135
原创 Restaurant Customers 餐馆最大人流量
创造一个向量,frist存储时间用于排序,second存储人物进出状态。最后排序后根据时间顺序累加人物状态即可。
2025-07-24 20:29:57
333
原创 Concert Tickets 二分+并查集
用并查集查询已经被购买的情况(一直查询更小的票价,售空为止)find需要特判-1的情况,不然会运行错误。二分查找,分配门票(每个人越贵越好)
2025-07-24 19:35:25
365
原创 Two Knights(数学归纳)
每一个方向公式都一样,所以一个马在不同位置可能攻击到的格子总数为4*(k-2)*(k-1)对于其中一个方向右1上2(=左1下2),马可以有效攻击的格子范围:(行-2)*(列-1)k*k的格子内,两个马可以放 (k*k)*(k*k-1)/2 个(去掉重复)考虑攻击,两个马攻击的时候他们是对称的,所以计算只考虑半边8/2=4个。(如果此时再计算左1下2,就是把这一组多算了一遍)
2025-07-24 15:44:25
154
原创 (AC)问题 E: 自动鸡Q-automa-chicken
贝斯比(Bisbey)是个养鸡的农家。贝斯比一共使用四种厂牌的饲料来喂鸡:N 牌、P 牌、 S 牌与 C 牌。这四种厂牌的饲料各有各的优点,因此贝斯比会规划鸡接下来几餐要吃哪一个厂牌的饲料。贝斯比规划鸡饲料的方法如下:贝斯比为每一只鸡都设置了一个长型的饲料槽,这个饲料槽的宽度恰好是一包饲料的宽度,最前面是鸡吃饲料的地方,而最后面则是贝斯比把饲料放进饲料槽的地方。
2025-07-24 15:21:23
773
原创 位运算 原码、补码
1.位运算// 按位与:对应位都为1才为1a & b// 按位或:对应位有一个为1就为1a | b// 按位异或:对应位不同则为1a ^ b// 按位取反:0变1,1变0(注意符号位)~a// 左移:a << n 相当于 a * 2^na << 2// 右移:a >> n 相当于 a / 2^n(向下取整)b >> 12. 原码、补码的基本概念在计算机中,整数以二进制表示,负数采用。
2025-07-24 14:51:48
805
原创 问题 C: 字符串匹配
这天,喜欢学习的小 B 学到了跟字符串有关的算法,也就是字符串匹配。但是这个字符串匹配的算法跟常见的匹配有所不同,它回传的讯息是两个字符串当中有几个位置的字符是相同的,我们称为「同位置字符串匹配」。举例来说,"NPSC"跟"NTU"这两个字符串(不含双引号)的同位置字符串匹配是 1,因为两者的相同之处只有第⼀个字符 N是相同的。而" abcdabc "跟" abcdcba"(不含双引号)的同位置字符串匹配是 5,因为这两个字符串在第 1,2,3,4,6 这五个位置的字符是⼀样的。
2025-07-24 13:38:24
260
原创 问题 B: 拿行李
喜欢出国玩的小 B 这次在等待被托运的行李时,突然想到了⼀个问题。假设每个人有恰⼀件行李被托运,且行李输送带上最多只能有 k 件行李,且最多同时只能有 p 个人在输送带的周围等待他的行李,且每个人都只会拿他自己的行李,且每个人只会且⼀定会在拿到自己的行李后离开输送带的周围。现在,给定行李被放到输送带上的顺序,以及每个人到达输送带周围的顺序,小 B 很好奇每个人能不能都顺利的拿到自己的行李?
2025-07-24 11:41:24
246
原创 问题 D: 哈希
小 B 是⼀个竞赛选手。某天,他看到了⼀个哈希函数。小 B 在看到那个哈希函数的第⼀眼就深深的爱上了那个函数,原因当然是因为那个函数的变量居然使用了 meow!兴奋的小 B 迫不及待的想要研究这个函数有没有什么有趣的性质。然而为了研究,小 B 需要知道很多字符串在成为这个哈希函数的参数之后,这个函数会回传什么样的哈希值。你,为了帮助小 B 的研究,决定偷偷的帮小 B 算出那些他想知道的哈希值。
2025-07-24 10:55:51
605
原创 vector用法
而move操作是 “转移所有权”,本质上只是交换了两个vector的内部指针,时间复杂度为O(1),效率更高。直接赋值会触发vector的拷贝构造,将dp的所有元素复制到pre,时间复杂度为O(C)(复制C个元素)。将dp数组的数据转移给pre数组,比pre=dp更快。第一个参数 C 提前开内存。第二个参数 1 初始化值,即。中所有元素的初始值都设为1。
2025-07-13 18:26:33
105
原创 问题 E: 持家(贪心-AC?)
身为魔法少女的小 hua 可能从未考虑过,是否也会有要肩负起家庭与责任的一天。小 hua 在拼夕夕上想购买原价为 P 元的商品,由于拼夕夕是良心商家,他提前发放了 n 张优惠券给小 hua。本次购物,小 hua 被允许按照任意顺序使用 k 张优惠券。商家不会倒贴钱给他,她的花费最少是 0 元。优惠券均可叠加,例如使用两张 8 折券,则可以以 6.4 折的价格买下商品。
2025-07-13 17:59:43
115
原创 Nim游戏(博弈论)
游戏有若干堆石子(数量≥1),每堆有一定数量的石子(数量≥1)。两人轮流行动,每次行动需从任意一堆中取走至少 1 颗石子(可整堆取完)。异或和非0,意味着多一个1出来,这样先手通过操作让石子堆的异或和变成0,比如变成2 2,那么先手一定能拿到最后的一个棋子。判断当前局面(各堆石子数量)的胜负,只需计算所有堆石子数量的。
2025-07-11 11:49:38
193
原创 问题 C: 为美好的世界献上爆炎(博弈论)
在红魔村中,悠悠向惠惠发起了挑战。桌上有 n 枚硬币,两人轮流拿硬币。每次可以在区间 [l, r] 中选择一个数字 x 然后拿走 x 枚硬币,若一方无法再拿取则输掉了游戏,由惠惠先手开始拿硬币。惠惠和悠悠都是聪明的,现在惠惠想在游戏开始前,请你帮忙判断她是否能够必胜,若她可以必胜则会按照必胜策略和悠悠进行游戏,若不能必胜她就只好作弊来战胜悠悠了。游戏一共会进行 t 局,每局游戏都需要你判断胜负。
2025-07-11 11:43:45
412
原创 问题 A: 牛人
现在有n个人,每个人都有一个智力值和能力值。对于某一个人A来说,如果其它n-1个人中,没有人的智力值和能力值都比A高,则我们称A为“牛人”。反过来说,只要有一个人的智力值和能力值都比A高,则A就不是“牛人”了。请统计共有多少个“牛人”。
2025-07-04 14:58:13
212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人