自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 P10987 [蓝桥杯 2023 国 Python A] 火车运输

为照顾 Python 语言的效率,本题时限较大。建议使用 PyPy3 提交本题。

2025-06-12 18:56:59 460

原创 P10911 [蓝桥杯 2024 国 B] 数位翻转

小明创造了一个函数fx用来翻转x的二进制的数位(无前导0比如f1113,因为1110112​,将其左右翻转后,变为1311012​;再比如f33f00f2f4f81等等。小明随机出了一个长度为n的整数数组a1​a2​⋯an​,他想知道,在这个数组中选择最多m个不相交的区间,将这些区间内的数进行二进制数位翻转(将ai​变为fai​)后,整个数组的和最大是多少?

2025-06-11 23:49:39 806

原创 组合数学容斥原理(集合的并)

【代码】组合数学容斥原理(集合的并)

2025-06-10 13:15:48 64

原创 时间复杂度和算法选择

n \leq 100000 O(n \log n) 快速排序、线段树、树状数组、堆、拓扑排序、Dijkstra + 堆、Prim + 堆、Kruskal、SPFA、凸包、半平面交。n \leq 1000000 O(n) 、常数较小的 O(n \log n) 单调队列、哈希、双指针扫描、BFS、并查集、KMP、AC 自动机。n \leq 10^{100000} O(\log k \cdot \log \log k) 高精度加减、FFT/NTT。

2025-06-09 17:38:24 478

原创 线段树基础

【代码】线段树基础。

2025-05-27 12:37:21 78

原创 P1908 逆序对 (归并排序)5.22

猫猫 TOM 和小老鼠 JERRY 最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM 老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中ai​aj​且ij的有序对。知道这概念后,他们就比赛谁先算出给定的一段正整数序列中逆序对的数目。注意序列中可能有重复数字。

2025-05-22 22:55:53 480

原创 P10909 [蓝桥杯 2024 国 B] 立定跳远

在运动会上,小明从数轴的原点开始向正方向立定跳远。项目设置了n个检查点a1​a2​⋯an​且ai​≥ai−1​0。小明必须先后跳跃到每个检查点上且只能跳跃到检查点上。同时,小明可以自行再增加m个检查点让自己跳得更轻松。在运动会前,小明制定训练计划让自己单次跳跃的最远距离达到L,并且学会一个爆发技能可以在运动会时使用一次,使用时可以在该次跳跃时的最远距离变为2L。小明想知道,L的最小值是多少可以完成这个项目?

2025-05-07 01:13:27 659

原创 bitset

bitset的大小在定义时必须指定,通常是一个常量或编译时常量。// 定义最大位数。

2025-04-27 13:16:18 262

原创 # The Debate on Animal Research in Medical Science

2025-04-21 22:43:05 865

原创 P10416 [蓝桥杯 2023 国 A] XYZ

给定一个区间LR,请求出有多少组XYZ满足XYZ且L≤XYZ≤R。

2025-04-18 11:09:03 1003

原创 P8669 [蓝桥杯 2018 省 B] 乘积最大

给定N个整数A1​A2​⋯AN​。请你从中选出K个数,使其乘积最大。请你求出最大的乘积,由于乘积可能超出整型范围,你只需输出乘积除以1000000009(即1099)的余数。注意,如果X0, 我们定义X除以1000000009的余数是0−((0−xmod1000000009。

2025-04-10 20:31:00 482

原创 P8667 [蓝桥杯 2018 省 B] 递增三元组

没有优化,没有查重,纯搜双指针,前缀和优化

2025-04-10 14:47:43 163

原创 P10914 [蓝桥杯 2024 国 B] 跳石

小明正在和朋友们玩跳石头的小游戏,一共有n块石头按1到n顺序排成一排,第i块石头上写有正整数权值ci​。如果某一时刻小明在第j块石头,那么他可以选择跳向第jcj​块石头(前提jcj​≤n)或者跳向第2j块石头(前提2j≤n),没有可跳跃的目标时游戏结束。假如小明选择从第x块石头开始跳跃,如果某块石头被小明经过(“经过” 指存在某一时刻小明在这个石头处),则将这块石头的权值纳入得分集合Sx​,那么小明从第x块石头开始跳跃的得分为∣Sx​∣。

2025-04-03 00:48:19 673

原创 P11044 [蓝桥杯 2024 省 Java B] 食堂

S 学校里一共有a2​个两人寝、a3​个三人寝,a4​个四人寝,而食堂里有b4​个四人桌和b6​个六人桌。学校想要安排学生们在食堂用餐,并且满足每个寝室里的同学都在同一桌就坐,请问这个食堂最多同时满足多少同学用餐?

2025-04-02 01:08:39 683

原创 P1095 守望者的逃离

NOIP2007 普及组 T3。

2025-04-01 01:05:40 523

原创 同余(逆元)

求关于 $ x$ 的同余方程 $ a x \equiv 1 \pmod {b}$ 的最小正整数解。复制不过来,就是同余方程。

2025-03-31 00:18:46 185

原创 P2758 编辑距离 P1020 导弹拦截(未优化)P102 统计单词个数 P1052 过河

设A和B是两个字符串。我们要用最少的字符操作次数,将字符串A转换为字符串B。AB均只包含小写字母。

2025-03-31 00:17:12 822

原创 最长公共子序列

• 这种方法有效地解决了最长公共子序列问题,是动态规划和路径回溯的经典应用。• 通过动态规划方法,构建了一个二维数组。4.getLCS 函数:路径回溯。开始,逐步构建出最长公共子序列。3.LCS 函数:动态规划求解。最长公共子序列(LCS)求解。来存储子问题的解,同时使用。数组进行路径回溯,从。

2025-03-16 18:59:07 198

原创 补充二分LIS

这是一个简单的动规板子题。给出一个由nn≤5000个不超过106的正整数组成的序列。请输出这个序列的的长度。最长上升子序列是指,从原序列中取出一些数字排在一起,这些数字是的。

2025-03-15 22:23:07 960

原创 Dijkstra算法

Dijkstra算法是一种高效的单源最短路径算法,特别适合处理。

2025-03-15 22:00:24 501

原创 Bellman-Ford算法

中找到从一个源点到所有其他顶点的最短路径,即使图中包含负权边。与Dijkstra算法不同,Bellman-Ford算法能够处理负权边,并且可以检测图中是否存在。它通过逐步松弛(relaxation)图中的所有边,逐步逼近最短路径的值。如果图中没有负权边,且边数较多,通常推荐使用Dijkstra算法,因为它的时间复杂度更低(Bellman-Ford算法是一种用于解决。Bellman-Ford算法的核心思想是。

2025-03-15 16:11:39 291

原创 P1075质因数分解 P2512糖果传递 P4447分组 P1080国王游戏 P4053建筑抢修

有n个小朋友坐成一圈,每人有ai​个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。

2025-03-15 16:07:27 682

原创 贪心:P1842奶牛玩杂技 P1223排队接水 P1209修理牛棚 P1843奶牛晒衣服 P1803凌乱的yyy / 线段覆盖

Farmer John 养了N头牛,她们已经按1∼N依次编上了号。FJ 所不知道的是,他的所有牛都梦想着从农场逃走,去参加马戏团的演出。可奶牛们很快发现她们那笨拙的蹄子根本无法在钢丝或晃动的的秋千上站稳(她们还尝试过把自己装在大炮里发射出去,但可想而知,结果是悲惨的)。最终,她们决定练习一种最简单的杂技:把所有牛都摞在一起, 比如说, 第一头牛站在第二头的身上, 同时第二头牛又站在第三头牛的身上…最底下的是第N头牛。

2025-03-12 15:18:26 529

原创 数学,数论:P8682等差数列 P11003蓝桥村的真相 P4397聪明的燕姿(未解决)P10900数字诗意 P8646包子凑数

数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一部分的数列,只记得其中N个整数。现在给出这N个整数,小明想知道包含这N个整数的最短的等差数列有几项?

2025-03-09 20:05:19 786

原创 # P8754 [蓝桥杯 2021 省 AB2] 完全平方数

一个整数a是一个完全平方数,是指它是某一个整数的平方,即存在一个 整数b,使得ab2。给定一个正整数n,请找到最小的正整数x,使得它们的乘积是一个完全平方数。

2025-03-04 22:37:46 874

原创 筛法求欧拉函数,求约数,求约数和

1n中与n互质的数的个数称为欧拉函数,记为φ(n)。欧拉函数的性质若p是质数,则φ§=p-1若p是质数,则φ(pk)=(p-1)p(k-1)积性函数:若gcd(m,n)=1,则φ(mn)=φ(m)φ(n)欧拉函数的计算公式由唯一分解定理 n=Π(从1到s)p_iα_i=p_1得φ(n)=n * Π(从1到s)(p_i^(α_i-1) * (p_i-1))

2025-03-04 22:37:13 869

原创 P10904 [蓝桥杯 2024 省 C] 挖矿

小蓝正在数轴上挖矿,数轴上一共有n个矿洞,第i个矿洞的坐标为ai​。小蓝从0出发,每次可以向左或向右移动1的距离,当路过一个矿洞时,就会进行挖矿作业,获得1单位矿石,但一个矿洞不能被多次挖掘。小蓝想知道在移动距离不超过m的前提下,最多能获得多少单位矿石?

2025-03-04 21:32:07 1828

原创 Floyd算法,Dijkstra算法及优化

Floyd算法:适用于多源最短路径问题,时间复杂度 (O(N^3)),适用于稠密图。Dijkstra算法:适用于单源最短路径问题,时间复杂度 (O((N + M) \log N)),适用于稀疏图。优化方法:使用邻接表、优先队列等数据结构优化Dijkstra算法,减少时间复杂度。

2025-03-02 18:54:37 703

原创 线性筛(欧拉筛)

线性筛(也称为欧拉筛)是一种高效的算法,用于筛选出小于等于某个整数 ( n ) 的所有质数,同时避免了传统埃拉托斯特尼筛法(埃氏筛)中重复筛选的问题。线性筛的时间复杂度为 ( O(n) ),因此在处理大规模数据时非常高效。线性筛的核心思想是利用每个合数的最小质因数来筛选。每个合数只会被它的最小质因数筛掉一次,从而保证了每个数只被处理一次,达到线性时间复杂度。创建一个布尔数组is_prime,标记每个数是否为质数,初始时假设所有数都是质数(除了0和1)。创建一个数组primes,用于存储找到的质数。

2025-03-02 18:52:55 551

原创 洛谷P1004方格取数(两个题解)P1359租用游艇 P2285打鼹鼠 P1725琪露诺 P1886滑动窗口/单调序列

NOIP 2000 提高组 T4。

2025-03-02 15:37:02 746

原创 洛谷 P2440木材加工 P2678跳石头 P1314聪明的质检员 P1084借教室 P1902刺杀大师 P1163银行贷款

都是二分+很裸的算法,就不写繁冗的题解了注意:求xmax则 l 右移反之左移。

2025-03-01 11:30:01 617

原创 第七周(static 关键字,lower_bound,upper_bound,stl)

在 std::set 和 std::map 中的查找操作并不是查找地址,而是查找特定的键或值,并返回一个指向该元素的 迭代器(Iterator)。1.static修饰了局部变量x,令局部变量x变成静态的,且只能初始化一次,使得每次test()函数结束时局部变量x都不销毁,再次进入test()函数时则保留原有数值运行,因此x++数值越来越大。它假设区间是有序的(升序排列),如果区间中存在多个相同的元素,它会返回第一个满足条件的元素。迭代器的作用不仅仅是“查找地址”,它提供了对容器中元素的访问和操作能力。

2025-02-20 19:56:42 750

原创 DPのfor a week

选取和不超过S的若干个不同的正整数,使得所有数的约数(不含它本身)之和最大如取数字4和6,可以得到最大值121239。将字符串翻转,然后把所有 d 换成 p,把所有 p 换成 d。

2025-02-09 20:33:03 1073

原创 Codeforces Round 995 (Div. 3)

有 m 个问题列表,每个列表缺少一个问题,用 ai​ 表示。用贪心,尽量将蛇放置在靠左的位置,如果蛇需要扩展且尚未放置,则将其放置在当前最大位置的右侧。商店需定价圣诞树,顾客有 ai​ 和 bi​ 两个价格限制,分别对应正面和负面评价。商店需定价圣诞树,顾客有 ai​ 和 bi​ 两个价格限制,分别对应正面和负面评价。m计划进行一次远足,第一天走 a 公里,第二天走 b 公里,第三天走 c 公里,之后循环。如果m不知道任何问题的答案,他将无法通过任何问题列表的考试,输出结果为全 ‘0’。

2025-02-07 22:43:17 280

原创 第六周0125

对于一个无向图,如果从任意一个顶点都可以通过路径到达其他任意顶点,那么这个图被称为连通图(Connected Graph)。如果图中存在某些顶点无法通过路径到达其他顶点,则称该图是非连通的。连通性是图论中的一个重要概念,用于描述图中顶点之间的可达性。在无向图中,连通性是一个重要的性质,用于描述图的结构。边的表示:边用一对顶点表示,例如 (u,v),表示顶点 u 和顶点 v 之间有一条边。如果要使这个图连通,可以添加一条边 (3,4),这样所有顶点都可以通过路径相互到达。连通分量 2:包含顶点 4 和 5。

2025-01-25 00:20:26 233

原创 Codeforces Round 998 (Div. 3)(F题)

Alice 的交换函数的特点是:交换 a[i] 和 b[j] 的同时,也会交换 b[i] 和 a[j]。比较两个图的连通分量,若顶点在 F 和 G 中的连通分量不同,则需操作。某个位置的值不符合要求,但可以通过交换操作调整到合适的位置,则继续检查。贪心:对于每个位置 i,如果 a[i] 和 b[i] 的值不符合递增序列的要求,我们需要判断是否可以通过交换操作将它们调整到合适的位置。题解:尝试三种可能的a3值:a1+a2 a4−a2和 a5−a4,并计算每种情况下的满足条件数量,最终输出最大值。

2025-01-23 00:48:47 761

原创 P1049 装箱问题 P1048 采药P1040 加分二叉树

有一个箱子容量为V,同时有n个物品,每个物品有一个体积。现在从n个物品中,任取若干个装入箱内(也可以不取),使箱子的剩余空间最小。输出这个最小值。题解:装箱问题使用动态规划解决。dp[j] 表示容量为 j 的箱子可以达到的最大体积。逆序遍历更新 dp,最终输出 V - dp[V]。

2025-01-12 09:57:31 1003

原创 第五周枝节

原来2,12,22,32,42,52,62,72,82,92等值都只能挂在下标2的位置,但是当空间变为100,所有的值都有了自己对应的下标位置,原本长度为10的哈希桶,直接变为1(桶的长度)函数模板允许你定义一个函数,该函数可以接受不同类型的参数并返回不同类型的值。相比于数组,优势在于自动管理内存,可以在运行时动态地增加或减少其大小,这使得它比固定大小的数组更灵活.即数据个数所占整个空间的比率,每插入一个位置,就让负载因子+1,一般来说,负载因子达到0.7就要进行。类的一个成员函数,用于改变向量的大小。

2025-01-12 09:45:22 741

原创 Codeforces Round 993 (Div. 4)

题解:开始时只需要把蜘蛛分成两种状态,有1个和不止一个(因为第二轮前者变成0,后者变成1),用vector来存储每只蜘蛛的玩偶个数,再用两个vector来存储该蜘蛛昨年和今年的玩偶状态(昨年是0,那么如果对应是r[i]的话,今年是1)题解:正常来说,应该枚举,但是呢,因为还没有考虑重复的情况,所以直接减一就可以了,注意vector动态数组的使用,定义的是大小为n的向量。题解:先依次枚举,如果当前a[i]不是众数,就向前遍历,改变最大的那个数为为a[i],然后发现会改变a[i]前的众数,显然不可行。

2025-01-12 09:31:18 671

原创 第四周枝节

##在写回文题的时候有以下函数:高精度反转:(在计算高精度时,我们输入的是从高位到低位,但在计算时从低位到高位,因此需要反转)于是在 C++STL 中有了reverse函数输出:5 4 3 2 12 1 3 4 5。

2024-12-29 21:29:05 607

空空如也

空空如也

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

TA关注的人

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