自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 图论算法合集

Dijkstra算法是一种用于计算单源最短路径的算法,即从一个指定的起始节点到图中所有其他节点的最短路径。该算法适用于有向图和无向图,但要求边的权重为非负数。Dijkstra算法利用贪心策略,逐步扩展最短路径树。Floyd-Warshall算法适用于计算所有节点对之间的最短路径,时间复杂度为O(n^3),适用于稠密图。Dijkstra算法用于计算单源最短路径,时间复杂度为O((V+E) log V),适用于边权非负的稀疏图。通过实际代码示例和详尽的注释,我们理解了两种算法的核心思想和实现细节。

2024-07-27 08:30:00 341

原创 CSP-J模拟赛day4——解析+答案

显然我们可以发现,在二进制下2n这个结果在二进制下就是1后面n个0所以如果仅有2a2b这个运算,那么在二进制下这个运算结果只会包含两个1所以会影响1个数的就是这个−2c,手动模拟后就会发现最后答案为b−c1这里要注意数据范围,记得开longlong。

2024-07-26 17:22:57 591

原创 NOI大纲——普及组——素数筛法

时间复杂度 O(n2)O(n^2)O(n2)2.试除法的优化时间复杂度O(n×n)O(n\times \sqrt{n})O(n×n​)埃拉托色尼筛法(Eratosthenes Sieve)埃拉托色尼筛法是一种古老且高效的算法,用于找出某个范围内所有的素数。它的工作原理基于反复标记出合数(即非素数)。其核心思想如下:下面是埃拉托色尼筛法的详细步骤及代码实现:​。因为如果i的值超过n\sqrt{n}n​,i的倍数中最小的一个已经大于n,因此没有必要继续标记。代码实现示例假设我们要找出30以内的

2024-07-26 17:05:23 328

原创 CSP-J模拟赛day4——试题

输入文件binary.in输出文件binary.out。

2024-07-25 17:00:15 511

原创 CSP-J模拟赛day3——解析+答案

按照题意,贪心即可。需要注意的是,这道题目需要开long long。

2024-07-25 16:57:15 518

原创 NOI大纲——如何备战CSP-J(下)

请注意你是否报上了名,这是非常重要的。

2024-07-25 16:51:46 211

原创 CSP-J模拟赛day3——试题

时间限制:1ms/空间限制:512MB。

2024-07-24 16:46:48 647

原创 CSP-J模拟赛day2——解析+答案

记录能到达的最高点和最低点,如果最高点小于最低点就不行,然后从后往前进行模拟。将气球和条幅都从小到大排序就行,然后一个一个的匹配。大于1的正数都要取,负数要选的话就要一次性选两个。通过记录前缀来判断,并且枚举截断点。

2024-07-24 16:35:45 611

原创 CSP-J模拟赛day2——试题

时间限制:2ms/空间限制:512MB。

2024-07-23 21:51:30 705

原创 CSP-J模拟赛day1——解析+答案

的时间复杂度,显然过不了,所以我们这里采用桶排,这样的时间复杂度就是。,也就是在二进制的情况下只有一个1,所以我们直接模拟就行了。因为有过牌这一方法,所以这道题就直接变成了01背包问题。很容易想到贪心的思路,但是无论是快排还是插排都需要。由题可得,每次只加一个。送分题,暴力枚举即可。

2024-07-23 21:48:21 848

原创 CSP-J模拟赛day1——试题

输入文件avoidin输出文件avoidout。

2024-07-21 16:00:12 789

原创 [CQOI2007] 涂色

假设你有一条长度为5的木板,初始时没有涂过任何颜色。你希望把它的5个单位长度分别涂上红、绿、蓝、绿、红色,用一个长度为5RGBGR。每次你可以把一段连续的木板涂成一个给定的颜色,后涂的颜色覆盖先涂的颜色。例如第一次把木板涂成RRRRR,第二次涂成RGGGR,第三次涂成RGBGR,达到目标。用尽量少的涂色次数达到目标。

2024-07-17 17:43:20 768

原创 1571:【例 3】凸多边形的划分——典型的区间dp问题,值得一看

给定一个具有N个顶点的凸多边形,将顶点从1至N标号,每个顶点的权值都是一个正整数。将这个凸多边形划分成N−2个互不相交的三角形,试求这些三角形顶点的权值乘积和至少为多少。

2024-07-17 17:34:40 698

原创 能量项链——典型的区间dp问题,值得一看

在 Mars 星球上,每个 Mars 人都随身佩带着一串能量项链。在项链上有N颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是 Mars 人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头标记为m,尾标记为r,后一颗能量珠的头标记为r,尾标记为n,则聚合后释放的能量为m×r×n。

2024-07-16 17:45:29 958

原创 石子合并环

在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆,规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出一个算法,计算出将N堆石子合并成1堆的最小得分和最大得分。

2024-07-16 17:44:10 266

原创 放苹果——动态规划思路,典型的区间dp,值得一看

把m个同样的苹果放在n个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法。511和115是同一种方法)

2024-07-16 17:41:15 594

原创 浅说区间dp(下)

好了,到目前为止,普及组所要用到的动态规划问题我们基本上是讲完了,不知道大家有没有收获呢?如果有问题,欢迎到评论区留言,或者私信博主,如果喜欢博主的博客的话,请点一个赞,蟹蟹~~

2024-07-16 17:35:35 1216

原创 浅说区间dp(上)

但是和前面合并型区间dp的思考方式有一点区别,我们并不是考虑最后一次拆分,然后前面有k个乘号,那么后面区间就有j-k-1个乘号,然后两这相乘的最大值,如果是这样,那么数组就需要dp[i][j][k]来表示,虽然这样也可以做,但是效率上会低一些,而且消耗的空间也比较大。该题和前面做过的一道合并果子的题类似,但是不一样的地方在于每次只能合并相邻两堆,如果我们贪心的每次选择相邻的最小的两堆合并,那么答案明显是错误的,因为前面合并顺序的不同会影响后面每堆的数量,所以我们要考虑动态规划。回文词是一种对称的字符串。

2024-07-15 17:39:16 1249

原创 浅说背包问题(下)

背包问题是线性DP的一个衍生,同时也是比较复杂的动态规划问题的一个简单雏形。动态规划是信息学竞赛的一个重难点,要想学好动态规划,先打好基础是非常有必要的。同样的,背包问题远不止这九类,还有很多类型的比较复杂的背包问题,这里先不做累述了。如果遇到比较复杂的背包问题,或者没有讲解过的背包问题,先看看能否转换前面我们学习过的简单背包问题来处理。一定要仔细分析问题,想出解决该类问题的状态状态转移方程(当前状态怎么由前一状态到达)码了8000多个字,又破记录了。

2024-07-14 18:41:35 540

原创 NOI大纲——如何备战CSP-J(上)

首先要备战csp,你就得先确定你的csp是否报上了名,要不然就是在做无用功。

2024-07-13 21:51:23 362

原创 浅说背包问题(中)

有N种物品和一个容量为V的背包。每种物品都有一个体积和价值,以及该物品有多少件。求解怎么装可使这些物品的体积总和不超过背包容量,且价值总和最大。问最大价值是多少13这种背包问题和前面的背包问题不同的地方在于,一种物品可以有很多件,并不是只可以取一件。我们可以把它转换成01背包来求解。每种物品有m[i]件,可以理解为有m[i]种该物品,每种物品只有一件。这就转换成了01背包。但是我们可以注意到这里会去枚举一个数量k,那么这个地方就有问题了,不难发现,k有两个位置可以放如图所示。

2024-07-13 20:56:45 1065

原创 浅说背包问题(上)

背包问题是线性DP的一个拓展,它的模型一般为:有一个体积为V的背包,有n种物品,每种物品的数量有限或者无限,每个物体有它的属性(体积、质量等),问在不超过背包体积的情况下如何选择物品才能让物品的属性之和最大。首先,很容易想到贪心是错误的,无论是从大到小贪,还是从小到大贪心的往背包里放物品,都可以找到反例。那么我们在这个地方就要考虑动态规划了。

2024-07-11 17:44:31 724

原创 矩阵取数游戏——典型的动态规划问题,值得一看

帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n×m的矩阵,矩阵中的每个元素aij​均为非负整数。nm×2iii1m帅帅想请你帮忙写一个程序,对于任意矩阵,可以求出取数后的最大得分。

2024-07-10 16:03:40 1018

原创 浅说平面dp(下)

wjq刚刚从床上起来,喜欢性感的她要去她寝室的不同位置去拿衣服,可是她的舍友把她的衣服丢的到处都是,黑丝,白丝,制服等衣服散在不同的位置上,wjq只好挨个去拿。wjc由于没有穿鞋,而且用她的粉粉嫩嫩的脚走起来非常的不舒服,然而鞋又在寝室门口,所以她想走一条最短路到教室的门口,但是性感度太少了她自己又不舒服,所以她决定走一条性感程度最高的最短路线(即保证路径最短的前提下性感程度最高),你能帮帮她吗?给定一个长为 n 的序列,任意选择其中连续的 x(0≤𝑥≤n)项所确定的一段更短的连续序列叫作一个子段。

2024-07-10 15:37:58 1034

原创 详解平面DP(上)

其实平面DP和正常的dp没有什么本质上的区别,只不过是在二维的面上进行DP,而且,客观的说,其实和递推没有什么区别,不要把他想的太难了。

2024-07-09 18:38:00 723

原创 NOI大纲——普及组——辗转相除法

辗转相除法(Euclidean Algorithm)是一种用于计算两个整数的最大公约数(Greatest Common Divisor, GCD)的算法。这种方法基于一个重要的性质:两个数的最大公约数等于其中较小的数与两数之差的最大公约数。进一步简化,可以用模运算来替代减法操作。

2024-07-01 10:51:41 361

原创 NOI大纲——普及组——二叉搜索树

这些特点使得二叉搜索树在进行搜索、插入和删除操作时非常高效。具体来说,在平均情况下,这些操作的时间复杂度都是 (O(\log n)),其中 (n) 是树中的节点数。

2024-07-01 10:05:20 427

原创 NOI大纲——普及组——图的表示与存储

邻接矩阵是一种表示图(Graph)的方法,它使用一个二维矩阵来表示图中的顶点和边。邻接矩阵适用于存储稠密图(Dense Graph),因为它能够直观地展示顶点之间的连接关系。例如,考虑一个有4个顶点(0, 1, 2, 3)的无向图,边为:0-1, 0-2, 1-2, 2-3。

2024-07-01 09:27:09 796

原创 NOI大纲——普及组——编码

#ASCLL码ASCII码(American Standard Code for Information Interchange,美国信息交换标准代码)是一种基于拉丁字母的字符编码方案,主要用于表示文本数据。ASCII码包含128个字符(0-127),包括控制字符(如换行、回车等)和可打印字符(如字母、数字、标点符号等)。在C++中,字符和字符串的处理是基础编程的一个重要部分。下面是C++中与ASCII码相关的一些详细内容。

2024-06-30 11:54:58 527

原创 NOI大纲——普及组——位运算总结

—按位与如果两个相应的二进制位都为1,则该位的结果值为1,否则为0∣——按位或两个相应的二进制位中只要有一个为1,该位的结果值为1——按位异或若参加运算的两个二进制位值相同则为0,否则为1——取反用来对一个二进制数按位取反,即将0变1,1变0。

2024-06-29 11:31:20 750

原创 NOI大纲简介

昨天无意间翻了一下NOI大纲,发现有好多的知识点没有完全掌握,所以我又重新开了一个栏目,希望大家多多支持。

2024-06-29 11:29:13 75

原创 P1064 [NOIP2006 提高组] 金明的预算方案

金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过n元钱就行”。如果要买归类为附件的物品,必须先买该附件所属的主件。每个主件可以有0个、1个或2个附件。每个附件对应一个主件,附件不再有从属于自己的附件。金明想买的东西很多,肯定会超过妈妈限定的n元。于是,他把每件物品规定了一个重要度,分为5等:用整数1∼5表示,第5等最重要。他还从因特网上查到了每件物品的价格(都是。

2024-06-29 10:28:42 684

原创 P1107 [BJWC2008] 雷涛的小猫

原最大整数参见 P1012。

2024-06-29 10:22:15 654

原创 浅说线性DP(下)

动态规划入门详解

2024-06-07 18:47:59 940

原创 P1280 尼克的任务——又是一道经典的dp绿题,值得一看

尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成。尼克的一个工作日为n分钟,从第1分钟开始到第n分钟结束。当尼克到达单位后他就开始干活,公司一共有k个任务需要完成。如果在同一时刻有多个任务需要完成,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去完成,假如某些任务开始时刻尼克正在工作,则这些任务也由尼克的同事完成。如果某任务于第p分钟开始,持续时间为。

2024-05-28 15:54:32 1004

原创 浅说线性DP(上)

在说线性dp之前,我们先来聊一聊动态规划是啥?

2024-05-28 14:32:17 992

原创 P1725 琪露诺——典型的优先队列和dp的结合,值得一看

在幻想乡,琪露诺是以笨蛋闻名的冰之妖精。某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来。但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸。于是琪露诺决定到河岸去追青蛙。小河可以看作一列格子依次编号为0到N,琪露诺只能从编号小的格子移动到编号大的格子。而且琪露诺按照一种特殊的方式进行移动,当她在格子i时,她只移动到区间iLiR中的任意一格。你问为什么她这么移动,这还不简单,因为她是笨蛋啊。每一个格子都有一个冰冻指数Ai​,编号为0的格子冰冻指数为0。

2024-05-28 14:12:52 1055

原创 浅说二分答案

前面我们讲的主要都是二分查找,二分查找在考试中一般都不会作为独立算法而存在,一般都是一道题中部分算法,它主要是基于单调性的减少枚举次数。而枚举除了枚举操作还可以枚举答案,枚举答案同样可以用二分来减少枚举次数,这就是比赛中常考的二分答案。很多时候当答案不是很容易直接计算的时候,我们可以考虑枚举答案,但是答案范围特别大,但是又具有单调性的时候,直接一个一个枚举答案效率很低,我们可以考虑二分枚举,如果答案有10亿种,那么二分枚举只需要30次左右就可以枚举完,大大提高了枚举效率。

2024-05-23 18:20:52 666

原创 P1281 书的复制——典型的二分答案问题,值得一看

大多数人的错误原因:尽可能让前面的人少抄写,如果前几个人可以不写则不写,对应的人输出0 0。不过,已经修改数据,保证每个人都有活可干。

2024-05-17 19:24:45 846

原创 P1469 找筷子

经过一段时间的紧张筹备,电脑小组的“RP 餐厅”终于开业了,这天,经理 LXC 接到了一个定餐大单,可把大家乐坏了!员工们齐心协力按要求准备好了套餐正准备派送时,突然碰到一个棘手的问题:筷子!CX 小朋友找出了餐厅中所有的筷子,但遗憾的是这些筷子长短不一,而我们都知道筷子需要长度一样的才能组成一双,更麻烦的是 CX 找出来的这些筷子数量为奇数,但是巧合的是,这些筷子中只有一只筷子是落单的,其余都成双,善良的你,可以帮 CX 找出这只落单的筷子的长度吗?

2024-05-17 14:24:15 812

空空如也

空空如也

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

TA关注的人

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