自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 P2661 [NOIP 2015 提高组] 信息传递

题目描述n个同学通过固定传递对象进行信息传递,当有人得知自己的生日时游戏结束。要求找出游戏进行的轮数,即图中最小环的长度。 解题思路: 将问题转化为在有向图中寻找最小环 使用Tarjan算法识别所有强连通分量 统计节点数>1的强连通分量(即环) 输出最小环的大小 算法复杂度为O(n),适用于n≤2×10^5的数据规模。通过邻接表存储图结构,利用栈和后序遍历实现强连通分量的高效查找。

2025-06-23 19:35:54 664

原创 P2668 [NOIP 2015 提高组] 斗地主

剪枝优化 在DFS过程中,通过比较当前出牌次数与已知的最小值minn,提前终止不必要的搜索路径,提高效率。顺子、连对、飞机:尝试从不同起点开始,连续出牌(如五连顺子、三连对等),并在每次尝试后递归调用find。游戏者每次可以根据规定的牌型进行出牌,首先打光自己的手牌一方取得游戏的胜利。需要注意的是,本题中游戏者每次可以出手的牌型与一般的斗地主相似而略有不同。单牌、对子、三带、炸弹:统计这些牌型的数量,并尝试带牌(如三带一、四带二等)。输入处理:注意牌的数字映射关系,特别是特殊牌(如大小王)的处理。

2025-06-23 19:13:27 413

原创 P3398 仓鼠找 sugar

本文解决树结构中两条路径是否有公共点的问题。通过DFS预处理节点深度和倍增数组,快速计算任意两点间的最近公共祖先(LCA)和路径长度。对于查询$(a,b,c,d)$,利用不等式$dis(a,b)+dis(c,d) \geq dis(a,c)+dis(b,d)$判断路径是否相交。算法时间复杂度为$O(n\log n + q\log n)$,适用于$n,q\leq10^5$的大规模数据。预处理阶段构建深度和倍增表,查询时通过4次LCA和距离计算快速判定,正确性基于LCA深度关系的几何直观。

2025-06-23 18:57:21 526

原创 P3258 [JLOI2014] 松鼠的新家

题目要求计算树结构中每个房间需要放置的最少糖果数量,使得维尼按照给定顺序访问房间时都能拿到糖果。算法利用差分数组和LCA(最低公共祖先)来高效标记路径,通过DFS遍历实现差分数组的累加。最终每个节点的糖果数量为基本访问次数加上差分数组的累加结果。时间复杂度为O(n log n),适用于大规模数据。

2025-06-23 18:51:42 413

原创 P3953 [NOIP 2017 提高组] 逛公

摘要 题目要求计算从公园入口1到出口N的所有路径数,其中路径长度不超过最短路d加上K。使用Dijkstra算法求最短路后,通过反向图进行记忆化搜索。定义状态sum[g][d]表示在节点g时路径长度超出d的方案数。状态转移时考虑反向边的权值调整,检测零环则输出-1。最终统计所有d∈[0,K]的方案数之和。算法复杂度为O(T*(mlog n + mk)),通过优先队列优化和记忆化搜索实现高效计算。

2025-06-21 16:04:42 947

原创 P3952 [NOIP 2017 提高组] 时间复杂度

摘要 本文解析了NOIP2017提高组题目P3952关于时间复杂度判断的问题。题目要求根据给定程序代码判断其实际时间复杂度是否与声明一致,同时检测语法错误(F/E不匹配或变量名重复)。程序解析部分详细说明了如何通过双端队列模拟循环嵌套,使用状态标记(常数循环、有效循环、无效循环)来计算实际复杂度指数,并与声明值比较。代码实现了时间复杂度解析、变量名检查、循环状态判断等功能,最终输出Yes/No/ERR三种结果。测试用例涵盖了各种循环情况,包括嵌套循环、无效循环和语法错误检测。

2025-06-21 15:42:36 617

原创 P7076 [CSP-S2020] 动物园

摘要 题目描述动物园根据饲养动物编号的二进制特征购买特定饲料。给定n种动物编号和m条饲养规则(要求当某二进制位为1时购买对应饲料),要求计算在不改变当前饲料清单的前提下,还能饲养多少种新动物。关键步骤包括:将所有动物编号进行二进制或运算,确定必须购买的饲料;统计未被饲料规则覆盖的二进制位组合;最终计算可新增动物数量。算法需处理k位二进制数和大量数据,注意使用无符号长整型以避免溢出。对于样例1,输出13表示还能饲养13种动物。

2025-06-20 20:50:10 681

原创 # P7077 [CSP-S2020] 函数调用

这篇文章描述了一个数据库应用程序的函数调用问题,需要计算执行一系列函数操作后的数据值。函数分为三类:单点加法、全局乘法和多函数调用组合。该问题通过构建正向和反向调用图,采用双拓扑排序高效计算乘法系数和加法贡献值。最后结合初始数据,计算出每个元素经过函数序列处理后的最终值,并对998244353取模。这种解法巧妙地将函数间的依赖关系转化为图论问题,通过拓扑排序递推计算,避免了直接执行的性能开销。时间复杂度主要取决于函数调用图的规模,能够高效处理大规模数据。

2025-06-20 20:43:04 1006

原创 P1041 [NOIP 2003 提高组] 传染病控制

本题是错题,后来被证明没有靠谱的多项式复杂度的做法。测试数据非常的水,各种玄学做法都可以通过,不代表算法正确。因此本题题目和数据仅供参考。近来,一种新的传染病肆虐全球。蓬莱国也发现了零星感染者,为防止该病在蓬莱国大范围流行,该国政府决定不惜一切代价控制传染病的蔓延。不幸的是,由于人们尚未完全认识这种传染病,难以准确判别病毒携带者,更没有研制出疫苗以保护易感人群。于是,蓬莱国的疾病控制中心决定采取切断传播途径的方法控制疾病传播。

2025-06-19 20:59:57 616

原创 P1040 [NOIP 2003 提高组] 加分二叉树 题解

摘要: 本文解决了一个关于构造最优加分二叉树的问题。给定n个节点(中序遍历为1~n)及其分数,要求构建加分最大的二叉树,其中加分计算为左子树加分×右子树加分+根分数(空子树加分为1)。通过区间动态规划方法,用dp[l][r]记录区间[l,r]的最大加分,tree[l][r]记录对应的根节点。核心算法采用三重循环枚举区间长度和根节点位置,时间复杂度O(n³)。最后递归输出前序遍历序列。示例展示了如何计算最大加分145及其对应的前序遍历3 1 2 4 5。

2025-06-19 19:39:45 592

原创 P1039 [NOIP 2003 提高组] 侦探推理

明明同学最近迷上了侦探漫画《柯南》并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏。游戏的内容是这样的,明明的同学们先商量好由其中的一个人充当罪犯(在明明不知情的情况下),明明的任务就是找出这个罪犯。证词内容XXXis guilty.XXXToday isXXX​证词含义我是罪犯。我不是罪犯。XXX是罪犯。其中XXX表示某个同学的名字。XXX不是罪犯。​今天是XXX。其中XXX表示某个星期的单词。星期只有可能是以下之一:Monday。

2025-06-19 17:20:33 1661

原创 P5658 [CSP-S2019] 括号树

本题中()A(A)ABAB本题中与SSSlrSlr1≤l≤r≤∣S∣∣S∣SSlr。

2025-06-18 17:16:26 928

原创 P5657 [CSP-S2019] 格雷码

综上,n+1 位格雷码,由 n 位格雷码的 2n 个二进制串按顺序排列再加前缀 0,和按逆序排列再加前缀 1 构成,共 2n+1 个二进制串。通常,人们习惯将所有 n 位二进制串按照字典序排列,例如所有 2 位二进制串按字典序从小到大排列为:00,01,10,11。3 位格雷码为:000,001,011,010,110,111,101,100,编号从 0∼7,因此 5 号串是 111。2 位格雷码为:00,01,11,10,编号从 0∼3,因此 3 号串是 10。仅一行两个整数 n,k,意义见题目描述。

2025-06-18 16:29:21 698 1

原创 P1040 [NOIP 2003 提高组] 加分二叉树

设一个 n 个节点的二叉树 tree 的中序遍历为(1,2,3,…subtree 的左子树的加分 × subtree 的右子树的加分 + subtree 的根的分数。对于全部的测试点,保证 1≤n<30,节点的分数是小于 100 的正整数,答案不超过 4×。若某个子树为空,规定其加分为 1,叶子的加分就是叶节点本身的分数。第 1 行 1 个整数,为最高加分(Ans≤4,000,000,000)。第 2 行 n 个用空格隔开的整数,为该树的前序遍历。第 2 行 n 个用空格隔开的整数,为每个节点的分数。

2025-03-14 16:39:34 262

原创 P4267 [USACO18FEB] Taming the Herd G

参考代码:(四维动态规划)

2025-03-08 16:19:31 412

原创 P4268 [USACO18FEB] Directory Traversal G

如果 m 为 0,则该实体是一个文件。如果 m>0,则该实体是一个目录,并且它内部共有 m 个文件或目录。在 m 之后是 m 个整数,表示该目录中实体的 ID。第一行包含一个整数 N(2≤N≤100,000),表示文件和目录的总数。为了输入方便,每个对象(文件或目录)被分配一个唯一的整数 ID,范围在 1 到 N 之间,其中 ID 1 表示顶级目录。从给定目录中,任何文件都可以通过“相对路径”引用。Bessie 希望选择一个目录,使得从该目录到所有文件的相对路径长度之和最小。每行以文件或目录的名称开头。

2025-03-08 16:14:58 316

原创 P2120 [ZJOI2007] 仓库建设

突然有一天,L 公司的总裁 L 先生接到气象部门的电话,被告知三天之后将有一场暴雨,于是 L 先生决定紧急在某些工厂建立一些仓库以免产品被淋坏。对于没有建立仓库的工厂,其产品应被运往其他的仓库进行储藏,而由于 L 公司产品的对外销售处设置在山脚的工厂 n,故产品只能往山下运(即。第 2 到 (n+1) 行,每行有三个用空格隔开的整数,第 (i+1) 行的整数依次代表 xi​, pi​, ci​。对于 100% 的数据,保证 1≤n≤106,0≤xi​,pi​,ci​<231。

2025-03-03 17:36:31 275

原创 P1032 [NOIP 2002 提高组] 字串变换

本题不保证存在靠谱的多项式复杂度的做法。测试数据非常的水,各种做法都可以通过,不代表算法正确。规则的含义为:在 A 中的子串 A1​ 可以变换为 B1​,A2​ 可以变换为 B2​⋯。若在 10 步(包含 10 步)以内能将 A 变换为 B,则输出最少的变换步数;接下来若干行,每行有两个字符串 Ai​,Bi​,表示一条变换规则。对于 100% 数据,保证所有字符串长度的上限为 20。共进行了 3 次变换,使得 A 变换为 B。本题为搜索题,本题不接受 hack 数据。例如:A=abcd,B=xyz,

2025-02-21 16:37:57 377

原创 P1034 [NOIP 2002 提高组] 矩形覆盖

当 k=2 时,可用如图二的两个矩形 s1​,s2​ 覆盖,s1​,s2​ 面积和为 4。例如:当 n=4 时,4 个点的坐标分别为:p1​(1,1),p2​(2,2),p3​(3,6),p4​(0,7),见图一。利用两次排序,分别以x,y来排序,每一个点可以分别和它的下面,左面进行dp,寻求最佳答案(上面和右面可以通过后面的点来比较),最后求最小值即可。对于 100% 数据,满足 1≤n≤50,1≤k≤4,0≤xi​,yi​≤500。共一行一个整数,为满足条件的最小的矩形面积之和。

2025-02-21 15:05:35 502

原创 P1024 [NOIP 2001 提高组] 一元三次方程求解

给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在 −100 至 100 之间),且根与根之差的绝对值 ≥1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后 2 位。提示:记方程 f(x)=0,若存在 2 个数 x1​ 和 x2​,且 x1​<x2​,f(x1​)×f(x2​)<0,则在 (x1​,x2​) 之间一定有一个根。一行,3 个实根,从小到大输出,并精确到小数点后 2 位。NOIP 2001 提高组第一题。

2025-02-20 15:35:59 213

原创 P1027 [NOIP 2001 提高组] Car 的旅行路线

接下来有 S 行,其中第 i 行均有 7 个正整数xi1​,yi1​,xi2​,yi2​,xi3​,yi3​,Ti​,这当中的 (xi1​,yi1​),(xi2​,yi2​),(xi3​,yi3​),分别是第 i 个城市中任意 3 个机场的坐标,Ti​ 为第 i 个城市高速铁路单位里程的价格。S 表示城市的个数,t 表示飞机单位里程的价格,A,B 分别为城市A,B 的序号。对于 100% 的数据,1≤n≤10,1≤S≤100,1≤A,B≤S。每组的第一行有 4 个正整数 S,t,A,B。

2025-02-20 14:45:33 496

原创 T228019 涂抹果酱

参考代码:(利用两位二进制解决三进制的问题)

2025-02-14 17:08:13 1021

原创 P2704 [NOI2001] 炮兵阵地

现在,将军们规划如何部署炮兵部队,在防止误伤的前提下(保证任何两支炮兵部队之间不能互相攻击,即任何一支炮兵部队都不在其他支炮兵部队的攻击范围内),在整个地图区域内最多能够摆放多少我军的炮兵部队。如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够攻击到的区域:沿横向左右各两格,沿纵向上下各两格。一个 N×M 的地图由 N 行 M 列组成,地图的每一格可能是山地(用 H 表示),也可能是平原(用 P 表示),如下图。司令部的将军们打算在 N×M 的网格地图上部署他们的炮兵部队。

2025-02-14 16:08:41 209

原创 P4999 烦人的数学作业

Mr.G最近在看一些关于数字题的书,他每天愁同学们太聪明了,所有的作业同学们都能做到全对(拿到答案)。但H为了备战NOIP2018,没有时间完成Mr.G的数学作业~~(其实是不想做QwQ)~~,所以Ta找到了你,希望你帮助Ta和同学完成这烦人的数学作业!在如山的作业中,Mr.G布置的数学作业最烦人,H总是完不成~~同学们纷纷做出来了,Mr.G一看这最后一题跟摆设没区别了呀,于是他迅速修改了题目,把范围定得非常非常大,且有T组数据,将最终的答案mod 109+7。,如123这个数的数字和为1+2+3=6。

2025-02-13 16:56:59 149

原创 P2602 [ZJOI2010] 数字计数

给定两个正整数 a 和 b,求在 [a,b] 中的所有整数中,每个数码(digit)各出现了多少次。包含一行十个整数,分别表示 0∼9 在 [a,b] 中出现了多少次。仅包含一行两个整数 a,b,含义如上所述。

2025-02-13 16:51:41 405

原创 P11557 [ROIR 2016] 有趣数字 (Day 2)

如果一个整数的各个数位按非递减顺序排列,我们称这个数是“有趣的”。例如,1145,2333,1377777 都是“有趣的”。输入两行,每行一个数,分别是 L 和 R。给定 L,R,求出 [L,R] 中有趣的数字的个数,对。输出一个数,表示答案。

2025-02-13 16:47:03 342

原创 P9584 「MXOI Round 1」城市

对于每一个方案,你需要求出在新建一条连接城市 ki​ 和城市 n+1 且费用为 wi​ 的双向道路后,所有 cost(i,j) 之和,即。共 q 行,每行一个整数,第 i 行的整数表示在新建一条连接城市 ki​ 和城市 n+1 且费用为 wi​ 的双向道路后,所有 cost(i,j) 之和对 998244353 取模的结果,即。接下来 n−1 行,第 i 行三个整数 ui​,vi​,ci​,表示存在一条连接城市 ui​ 和城市 vi​ 的双向道路,其费用为 ci​。当然,通过这些双向道路是要收费的。

2025-02-13 10:48:45 855

原创 P9437 『XYGOI round1』一棵树

定义一条路径 (𝑥,𝑦)的权值 𝑤(𝑥,𝑦) 为,从 𝑥 走到 𝑦 的最短路径上,所有节点上的数字顺次写下后得到的数。如,顺次经过写有数字 3,21,0,5 的四个节点,那么这个路径的权值为 32105。第三行 𝑛−1 个正整数,第 𝑖 个数 𝑝𝑖 表示节点 𝑝𝑖 与节点 𝑖+1 之间有边。保证 1≤𝑝𝑖≤𝑖。样例二解释:5+521+5210+21+215+210+0+021+0215=6418。样例一解释:1+12+123+2+21+23+3+32+321=538。记 𝑉=max⁡{𝑎𝑖}+1。

2025-02-11 15:38:17 510

原创 P2858 [USACO06FEB] Treats for the Cows G/S

约翰经常给产奶量高的奶牛发特殊津贴,于是很快奶牛们拥有了大笔不知该怎么花的钱。为此,约翰购置了 𝑁(1≤𝑁≤2000) 份美味的零食来卖给奶牛们。每天约翰售出一份零食。𝑉𝑖 的是从盒子顶端往下的第i份零食的初始价值。约翰告诉了你所有零食的初始价值,并希望你能帮他计算一下,在这些零食全被卖出后,他最多能得到多少钱。

2025-02-09 11:57:39 593

原创 P1775 石子合并(弱化版)

设有 𝑁(𝑁≤300) 堆石子排成一排,其编号为 1,2,3,⋯ ,𝑁。每堆石子有一定的质量 𝑚𝑖 (𝑚𝑖≤1000)。现在要将这 𝑁 堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻。合并时由于选择的顺序不同,合并的总代价也不相同。试找出一种合理的方法,使总的代价最小,并输出最小代价。输出文件仅一个整数,也就是最小代价。第二行,𝑁 个整数 𝑚𝑖​。第一行,一个整数 𝑁。

2025-02-09 11:25:06 121

原创 P2023 [AHOI2009] 维护序列 ( ( [主题训练B1] 线段树 ) 第五题 )

(建立乘法与加法的lazy标志)

2025-01-17 10:51:39 380

原创 P7865 「EVOI-RD1」无人机航拍( ( [主题训练B1]线段树 ) 第四题)[ 采用高级二维差分数组 ]

【可以采用二维线段树,但此题数据可以建立二维数组,用二维差分数组更简便】

2025-01-17 10:41:02 1098

原创 P2184 贪婪大陆(( [主题训练B1]线段树 ) 第三题 )

人类被蚂蚁们逼到了 Greed Island 上的一个海湾。现在,小 FF 的后方是一望无际的大海,前方是变异了的超级蚂蚁。小 FF 最后一道防线是一条长度为 𝑛n 的战壕,小 FF 拥有无数多种地雷,而 SCV 每次可以在 [𝐿,𝑅] 区间埋放同一种不同于之前已经埋放的地雷。由于情况已经十万火急,小 FF 在某些时候可能会询问你在 [𝐿′,𝑅′] 区间内有多少种不同的地雷,他希望你能尽快的给予答复。第一行为两个整数 𝑛 和 𝑚,𝑛 表示防线长度,𝑚 表示 SCV 布雷次数及小 FF 询问的次数总和。

2025-01-16 20:59:23 686

原创 P8856 [POI2002] 火车线路(( [主题训练B1]线段树 ) 第二题)

参考代码:(线段树求取区间最值)

2025-01-16 20:52:26 159

原创 P3372 【模板】线段树 1(([主题训练B1]线段树)第一题 )

参考代码:( 线段树模板题 )

2025-01-16 20:32:33 320

原创 P1019 [NOIP2000 提高组] 单词接龙

单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如。输入的第一行为一个单独的整数 𝑛表示单词数,以下 𝑛n 行每行有一个单词,输入的最后一行为一个单个字符,表示“龙”开头的字母。注意:本题为上古 NOIP 原题,不保证存在靠谱的做法能通过该数据范围下的所有数据。,另外相邻的两部分不能存在包含关系,例如。只需输出以此字母开头的最长的“龙”的长度。

2025-01-15 20:14:55 411

原创 P9606 [CERC2019] ABB

yjf(love(cjy))出版yjf(love(cjy))出版。

2025-01-13 11:15:47 312

原创 #132. 卷积区间

这个游戏的玩法是,Bessie 选择某个区间(假设是第 𝑖个区间),而她的表妹 Elsie 选择某个区间(假设是第 𝑗 个区间,可能与 Bessie 所选的的区间相同)。)有关,其中第 𝑖个区间从数轴上的 𝑎𝑖​ 位置开始,并在位置 𝑏𝑖≥𝑎𝑖​ 结束。在这个例子中,对于 𝑘=3,有三个有序对可以使得 Bessie 和 Elsie 获胜:(1,1),(1,2),和 (2,1)。2𝑀 内的每个值 𝑘,请计算使得 Bessie 和 Elsie 可以赢得游戏的有序对 (𝑖,𝑗) 的数量。

2024-11-29 15:44:32 403

原创 【23CSPJ普及组】一元二次方程(uqe)

4. 否则可以证明存在唯一整数 c,d𝑐,𝑑 满足 c,d>1,gcd(c,d)=1𝑐,𝑑>1,gcd(𝑐,𝑑)=1 且 q2=cd𝑞2=𝑐𝑑,此时输出{c}*sqrt({r})/{d};∙x2+x+1=0∙𝑥2+𝑥+1=0 无实数解,因为 Δ=12−4×1×1=−3

2024-10-24 16:19:51 713 1

原创 #P3014. 数字游戏

传统题 1000ms 256MiB。

2024-10-20 18:54:50 330

空空如也

空空如也

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

TA关注的人

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