自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AtCoder Beginner Contest 443 A~D

(因为只能向上移动),同时又要保证与前一列的棋子行数相差不超过一,也就是不能超过。从工作开始到结束,高桥君总共浏览 “chokutter” 的秒数是多少?表示每一次 “chokutter" 被关掉后又被打开的时间点,那么。在节分祭上,人们会吃与自己年龄相同数量的豆子。的值是已经确定的,因此我们可以把题意转换成:在满足条件的情况下,求。高桥君是长生不老的,因此最终他一定能从今年起累计吃掉至少。的值既满足题目的约束条件,又是第。的网格,每一列中放置了一个棋子。列的棋子初始位于从顶部数起的第。

2026-02-04 19:41:04 692

原创 Codeforces Round 1023 A~C

例如”()()“和”(())“是正则序列(转换后分别为”(1)+(1)“和”((1+1)+1)“),而”)(“、”(“和”)"则不是。=“aba*aba”,那么以下字符串与之匹配:“abaaba”、“abacaba” 和 “abazzzaba”,但以下字符串不匹配:“ababa”、“abcaaba”、“codeforces”、“aba1aba”、“aba?首先,如果不算上星号,字符串s的长度比字符串t的长度长,那么就一定不匹配(输出 “NO”)。,则打印 “YES”,否则打印 “NO”。

2025-12-06 16:39:49 1028

原创 Blash数集 题解

大数学家高斯小时候偶然间发现一种有趣的自然数集合。再详细点说过程:开始时,貌似很多同学用的是优先队列。这样时间复杂度就大大降低了。然后进入循环,比较出。

2025-10-07 16:59:52 452

原创 LG P4113 采花

👉。

2025-08-26 21:03:11 611

原创 P1001 A+B Problem 题解(非正经版

温馨提示:本篇题解可能具有一定的误导性,如果你是零基础的小白,请谨慎观看。此帖仅供娱乐(纯属作者自嗨这篇帖子到这里就要结束了有时候突然就会回想起四年前我在第一次学习OI的场景,回想起这道永远回不去的 A+B Problem。时间过的真的好快,总感觉自己要坚持不下去,想要放弃。。。

2025-08-26 20:40:03 433

原创 AtCoder Beginner Contest 419 B-Get Min

既支持自动排序,又能删除元素,还支持插入操作…这不就是优先队列吗?你可能会问:优先队列不是从大到小排序吗?有了这个东西,这题就很容易被解决了。当然,如果你想用数组写也差不多(但蒟蒻还是觉得STL大法好用,如果你不信邪的话,就自己去试一下吧 =)(数列中可能存在多个相同的元素)

2025-08-26 15:18:49 311

原创 P3369 普通平衡树 (Treap树)

顾名思义,这种数据结构结合了二叉搜索树(BST)和堆(Heap)的特性。它的每个节点含关键字(用于 BST 排序,左子树值小于节点值,右子树值大于节点值)和随机优先级(用于维护堆特性,父节点优先级不小于子节点)。通过左旋、右旋调整节点位置,在维持 BST 特性的同时修复堆特性,避免 BST 退化,保证平均高度为 O (log n)。其插入、删除、查找平均时间复杂度为 O (log n),实现简单,适用于动态维护有序数据场景。

2025-08-14 21:59:30 644

原创 Trie树 学习笔记

Trie 树(又名字典树、前缀树)是多叉树,用于高效存储和检索字符串。通过共享公共前缀节省空间,节点存字符、子节点指针及结尾标记。支持插入、查找、前缀匹配,时间复杂度均为 O (L)(L 为字符串长度),适用于自动补全、拼写检查等,前缀差异大时较耗内存。

2025-08-06 11:18:49 981

原创 AtCoder Regular Contest 113 - B

可以用快速幂取模。因为最后要输出个位数周期中的数,所以模数就是个位数周期的个数 (也就是上面代码的cnt)。因为只有个位,所以有10种情况 (包括0)。考试的时候我就按这样的的思路把代码交上去了。但是······没过?数太大了,暴力肯定过不了。所以其中必然存在一些规律——个位是2的周期是2,4,8,6;个位是9的周期是9,1;个位是1的周期是1;在第一点里说过,一共有10种情况。

2025-05-24 16:30:15 314

原创 AtCoder Beginner Contest 263 A~C

有N个人, 编号为1,2,···,N。第i (2≤i≤N)个人的父亲是Pi, 这里保证Pi​<i。编号为1的人是编号为N的人的第几代祖先?输出所有长度为N的严格上升的整数序列,其中所有元素都在1到M(包括M)之间,按字典顺序升序输出。这套卡片有三张卡片上写着相同的数字,还有两张卡片上写着另一个相同的数字。我们有五张卡片,每张卡片上写着整数A, B, C, D和E。确定这组是否是一个满屋。

2025-05-20 20:22:26 903

原创 AtCoder Beginner Contest 265 A~C

每一个格子有一个字符,(i, j)处的字符为Gi,j,为U,D,L,R四种之一,分别表示上下左右可以移动一步。你开始在(1, 1)处,你的移动规则如下: 设你当前的坐标为(i, j)高桥最初在房间1,时间限制为t,对于每一个1≤i≤N−1,他能消耗Ai的时间从房间i移动到房间(i+1),没有其他的方法可以在房间之间移动。房间被编号为1,2,…如果Gi,j为U,且i≠1,则移动到(i-1,j).如果Gi,j为L,且j≠1,则移动到(i,j-1).如果Gi,j为R,且j≠W,则移动到(i,j+1).

2025-05-20 19:32:35 1007

原创 AtCoder Beginner Contest 270 A~C

然而,在坐标Z处拿起锤子后,他可以摧毁那堵墙并通过。在t中给定两个不同的顶点X和Y,按顺序列出从顶点X到顶点Y的简单路径上的所有顶点,包括端点。Snuke解决了高桥和青木中至少一个人解决的所有问题,但没有解决他们两个都解决的任何问题。如果可以,找出他需要走的最小总距离。可以证明,对于树中任意两个不同的顶点a和b,存在从a到b的唯一简单路径。高桥得了A分,青木得了B分。可以证明在该问题的约束下,Snuke的分数是唯一确定的。高桥在数轴的原点,他想到达坐标为X的一个目标。考试有三道题,分别是1分、2分和4分。

2025-05-18 15:48:22 703

原创 ABC 268 C Chinese Restaurant

个人坐在可以转动的圆桌旁,按顺时针方向编号为。次旋转有多少人会开心。那么只要在输入编号为。个人前面摆的菜编号为。求最多能让多少人开心。当结束时,如果编号为。

2025-05-05 16:28:50 327

原创 ABC 213 D 旅行

条双向公路,任意两个城市都可以直接或间接互达。现在,你从 号城市出发。不断执行如下操作:(设当前所在的城市为。然后,我们再对这棵树进行dfs,结果就出来了。如果有没有访问的子结点,就访问最小的。按顺序输出旅程经过的所有城市。条公路连接的两个城市。否则,去它的父亲节点。

2025-04-24 21:05:30 196

原创 ABC 213 C 卡片移动

这里卡片1初始位置为(3, 2),卡片2的初始位置为(2, 5)。把它们行数排序再按顺序编号得卡片1的行数为2,卡片2的行数为1。其实不难发现,每一个卡片移动后的列数,就是按原来列数排序后的排名,行数,就是按原来行数排序后的排名。这两个操作可以按任意顺序进行,直到最后所有的行和列都有带数字的卡片为止。个位置外,其他位置上的卡片是没有数字的。张卡片的最终的位置。按卡片上的数字由小到大给出。卡片1(2, 1),卡片2(1, 2)。的表格,每个格子中有一张卡片。,该位置上的卡片有一个数。

2025-04-24 20:31:16 476

原创 ABC 266 B 模数

倍的998244353满足大于等于0且小于等于998244352,所以我们只需要枚举。在[0,998244352]之间,且那么就说明。是 998244353 的倍数。我们可以反过来判断。一个整数,表示答案.

2025-04-19 20:05:31 195

原创 ABC 232 D 蒟蒻的行走

是 '#' ,则它是一面墙。小T想要在表格中行走,当他在 (i, j) 时,他可以走到 (i + 1, j) 或 (i, j + 1)。然而,他不能走出表格,也不能进入 '#' 所在的格子中。他从 (1, 1) 出发,问他最多能访问多少个格子。的表格, 每一个格子 (i, j) 都用一个字符表示。如果是'.', 则表示它是一个空格;最后的结果取f数组中的最大值。列,表示这一个二维表格。输出他能访问的格子数。

2025-04-19 20:04:02 329

原创 ABC 265 C 传送

的表格,(1, 1) 表示左上角的格子。每一个格子有一个字符,(i, j) 处的字符为,为 U,D,L,R 四种之一,分别表示上下左右可以移动一步。你开始在 (1, 1) 处, 你的移动规则如下: 设你当前的坐标为 (i, j)直接从(1, 1)开始模拟就好了,重点在于怎么判断停不下来。如果被重复标记,就输出-1.输出你最后停在哪里,如果你停不下来,则输出-1.,则移动到 (i + 1, j).,则移动到 (i, j - 1).,则移动到 (i, j + 1).,移动到 (j - 1, i).

2025-04-19 20:01:36 316

原创 菜鸟教程之——for循环

直入正题。C++中,循环是特别重要的,以后不同类型的算法都和循环有着密切关系。今天讲的就是循环之一——for循环。在for循环中,包括最基本的三要素:初始值(表达式1),循环条件(表达式2),更新(条件3)上图:这样说可能还是不太明白,举个例子:输出数字 1~100。这不可能一个一个输出,太慢了,所以就要用上for循环。1到100,很显然,初始值为1。判断条件就是不超过100,也就是 i

2024-10-26 15:52:49 733

原创 菜鸟教程之 —— if语句

话不多说,直接开始(大佬可以划走了)if说白了就是判断条件成不成立(下面是基本模板)或者。

2024-10-24 20:48:48 462

空空如也

空空如也

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

TA关注的人

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