自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MYOJ_6631:(洛谷P4053)[JSOI2007] 建筑抢修

真是经典好题!还是省选的!

2025-06-08 17:02:15 360

原创 MYOJ_4149:(洛谷P1002)[NOIP 2002 普及组] 过河卒(坐标型DP)

棋盘上 A 点有一个过河卒,需要走到目标 B 点。同时在棋盘上 C 点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。现在要求你计算出卒从 A 点能够到达 B 点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。既然马的位置固定, 那么可以确定所有无法到达的点,可以像之前图论一样设置dir8方向数组。棋盘用坐标表示,A 点 (0,0)、B 点 (n,m),同样马的位置坐标是需要给出的。STEP 1:输入,并使用vis数组预先标记无法到达的点。输入1:6 6 3 3。

2025-06-01 13:17:07 296

原创 MYOJ_1349:(洛谷P3951)[NOIP 2017 提高组] 小凯的疑惑(数学公式套用,两步搞定代码)

小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?一个正整数 N,表示不找零的情况下,小凯用手中的金币不能准确支付的最贵的物品的价值。两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯中金币的面值。本题代码纯属数学的结晶,因此肥肠简单,但需要一定理解。注意:输入数据保证存在小凯无法准确支付的商品。很好,现在到了展示公式的时间了。

2025-04-28 18:50:48 380

原创 MYOJ_7443《洛谷 U556408 》【模板】二叉树基础训练 (自己上传的题,想上主题库qwq)(二叉树基础操作模板)

第1行:这棵二叉树的深度 第2行:这棵二叉树叶子结点数 第3行:这棵二叉树的先序遍历序列 第4行:这棵二叉树的中序遍历序列 第5行:这棵二叉树的后序遍历序列 第6行:这棵二叉树的层次遍历序列。输入一个带空结点的先序遍历序列,生成一棵二叉树。例:根结点是A,左孩子是B,右孩子是C,这样一棵二叉树的带空结点的先序遍历序列为:AB##C##一行由大写字母和#组成的字符串,为带空结点的先序遍历序列。输入:ABD###CE##F##生成二叉树后,请分别输出。

2025-04-22 18:08:46 468

原创 自己的账号

这是我的洛谷账号(一周进来更新一次,有事除外)目前过的题还算少的。最后更新时间(2025/4/17 20:30)UVA(这个做了题就更新)

2025-04-17 20:35:07 202

原创 SP7733:HPYNOS - Happy Numbers I(参考我之前的文章,哈希)

如果一个数在经过若干次“破坏”以后变成了 1,那么这个数就是一个高兴的数字,输出变化次数,否则如果永远不会变成 1,输出 −1。例如:

2025-04-17 20:24:50 457

原创 MYOJ_11700(UVA10591)Happy Number(快乐数)(超快解法:图论思想解题)

(注意哈希不要在全局定义,不然还要清空,很麻烦)STEP 2:判定函数,当n不是1且n未被见过时循环,首先将当前数字加入已见集合,定义一个数字用于计算数字各位平方和,然后提取每一位数字进行计算,获取最后一位数字进行平方累加,迭代更新n为平方和,跳出后判断最终结果是否为1STEP 3:读写优化还是要开的,输入数量,for循环(为了方便按照题目要求输出,最好不用while(t--))先输出编号和输入数字,接着根据是否为快乐数来输出后面的代码。

2025-04-17 20:00:57 1337

原创 MYOJ_5775:(洛谷P3383)【模板】线性筛素数(质数筛模板)

STEP 2:线性筛,初始假设都是素数,0,1,不是素数,遍历所有数,如果i是质数,将i存入质数数组,用已找到的质数筛选合数,:假设n是合数且所有质因数都大于√n,那么这些质因数的乘积将大于(√n)^2 = n,这与n的因数分解矛盾。接着讲:如果i为素数,进内循环,标记所有的倍数为素数。当i=5时,5×2=10(已被2筛选),5×3=15(已被3筛选),5×4=20(已被2筛选):对于素数i,i²是第一个未被之前素数筛选掉的i的倍数。综上所述,外循环从2到i*i,内循环从i*i到n。

2025-04-12 16:02:09 733

原创 MYOJ_4553:(洛谷P1022)[NOIP 2000 普及组] 计算器的改良(数学运算与求解相关)

NCL 是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能。实验室将这个任务交给了一个刚进入的新手 ZL 先生。你可假设对键入的方程的正确性的判断是由另一个程序员在做,或者说可认为键入的一元一次方程均为合法的,且有唯一实数解。ZL 先生被主管告之,在计算器上键入的一个一元一次方程中,只包含整数、小写字母及。方程中并没有括号,也没有除号,方程中的字母表示未知数。输入:6a-5+1=2-2a。输出:a=0.750。

2025-04-11 16:48:04 533

原创 MYOJ_11648:(洛谷P1379)八数码难题(BFS提高及运用)

在 3×3 的棋盘上,摆有八个棋子,每个棋子上标有 1 至 8 的某一数字。棋盘中留有一个空格,空格用 0 来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为 123804765),找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变。只有一行,该行只有一个数字,表示从初始状态到目标状态需要的最少移动次数。输入初始状态,一行九个数字,空格用 0 表示。还是的,使用DFS会TLE,所以BFS。不是从第一列向左移动。

2025-04-06 20:38:22 321

原创 MYOJ_4306:(洛谷P1018)[NOIP 2000 提高组] 乘积最大(DP递推+高精结合运用)

暂停一下如果不用去前导0,就会这样比如:6 2100000这是因为字符串无法自己去前导,但long long可以如果用自带stoi函数,就会………………所以得自己写。

2025-04-05 14:37:17 488

原创 MYOJ_1171:(洛谷P1075)[NOIP 2012 普及组] 质因数分解(数学相关,质数与约数基础)

为了节约时间与确保答案正确性,我们可以先暴力求出最小的质数用n去除,得到最后的结果。(这里循环结束的条件不用写j*j<=a,因为找到直接跳出,后面也不会被遍历到)已知正整数 n 是两个不同的质数的乘积,试求出两者中较大的那个质数。输入:21 输出:7。输出一个正整数 p,即较大的那个质数。输入一个正整数 n。

2025-04-05 12:52:54 304

原创 MYOJ_8866:(洛谷P7072)[CSP-J2020] 直播获奖(计数排序的使用,理解题目)

注意这里需要。

2025-04-04 20:44:55 434

原创 MYOJ_4342:(洛谷P1087)[NOIP 2004 普及组] FBI 树(二叉树实操,递归提高)

(在一和二中都不做使用)及01字符串,输入,建FBI树,后序遍历输出,完成。

2025-04-04 17:48:03 478

原创 MYOJ_4576:(洛谷P1032)[NOIP 2002 提高组]字串变换(BFS提高)

注意vis不再是之前的BFS的数组,因为需要存储当前被访问的那个字符串作为键值,所以建议使用map。替代:哈希表(其实根本不需要,本题时间复杂度是完全可以使用map的,而且哈希要处理哈希冲突),set(太麻烦且不直观)

2025-04-04 12:33:20 428

原创 MYOJ_1214:(洛谷P1015)[NOIP 1999 普及组]回文数(高精度计算与数制结合运用)

写一个程序,给定一个 N(2≤N≤10 或 N=16)进制数 M(100 位之内),求最少经过几步可以得到回文数。如果在 30 步以内(包含 30 步)不可能得到回文数,则输出。例如:给定一个十进制数 56,将 56 加 65(即把 56 从右向左读),得到 121 是一个回文数。在这里的一步是指进行了一次 N 进制的加法,上例最少用了 4 步得到回文数 4884。若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。如果能在 30 步以内得到回文数,输出格式形如。

2025-03-30 12:48:53 426

原创 MYOJ_4204:迷宫(图论-网格图基础,dfs,bfs在网格图中应用)

(P.S.以后的网格图若没有特殊说明都是要用到这个的,以后就不说了~~~)STEP 2:dfs,先把。

2025-03-08 14:26:44 738

原创 MYOJ_4567:(HDU4548)美素数(暴力算法,素数与约数与前缀和提高)

问题是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“美素数”,如 29,本身是素数,而且 2+9=11 也是素数,所以它是美素数。接下来共 T 行,每行输入两个整数 L,R (1≤L≤R≤1000000),表示区间的左值和右值。小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问题,今天,小明想考考你对素数的认识。对于每组数据,先输出 Case 数,然后输出区间内美素数的个数(包括端点值 L,R)。第一行输入一个正整数 T,表示总共有 T 组数据,T≤10000。

2025-03-05 16:09:15 562 1

原创 MYOJ_7445:哈夫曼压缩(哈夫曼树提高,dfs练习)

压缩前数据长度:4字节,32位,压缩后:6位, 压缩率:6/32 = 0.188(保留3位小数)对该字符串进行哈夫曼压缩后的压缩率,保留3位小数(压缩后的数据大小 / 压缩前的数据大小)一行字符串(字符串长度小于等于1000,字符串中都是ASCII码表中的字符,可能有空格)2. 构建哈夫曼树,得到哈夫曼编码: a: 00, b:01, c:1。3. 将文本转为哈夫曼编码,保存,该二进制串即为压缩后的数据。求该压缩的压缩率(压缩后的数据大小 / 压缩前的数据大小)。例:有一个段文本:"abcc"

2025-03-05 11:50:42 391

原创 MYOJ_4696:约瑟夫问题(链表(手写单向链表,环形链表)基础与理解,队列应用联系)

个人(1≤n≤10^5)围成一圈,从第一个人开始报数,数到 m (1≤m≤109)的人出列。再由下一个人重新从 1 开始报数,数到 m 的人再出圈。依次类推,直到所有的人都出圈,请输出依次出圈人的编号。输出:3 6 9 2 7 1 8 5 10 4。实现还是比较简单的,只要理解~~~一行两个整数 n 和 m。指针指向自身,形成一个环。话不多说,思路出炉~~~

2025-03-04 17:10:33 598

原创 UVA12556:“Center“ of perimeter midpoints(周边中点的“中心”)

T 组数据,每组数据 6 个整数 x1​,y1​,x2​,y2​,x3​,y3​ 分别代表 A(x1​,y1​),B(x2​,y2​),C(x3​,y3​) 并且满足这些整数的绝对值不大于 100。注意:如果这个不加的话会导致连样例都通过不了!如果我们定义 D 为 △ABC 的“周长中点”,则点 D 满足 AC+AD=BD+BC(点 D 在 AB 上),并且对于其他的两个点也这么定义。在 △ABC 里,若有 D,E,F 为 AB,BC,AC 的中点,那么 CD,AE,BF 交于一点,即 △ABC 的重心。

2025-03-04 16:10:59 1493 1

原创 MYOJ_4340:(UVA679) Dropping Balls(完全二叉树提高)

所以第一个球将会访问节点 1,节点 2 和节点 4,转变节点的布尔值后在在节点 8 停止。明显地,第三个球在它停止之前,会访问节点 1、2、5,在节点 10 停止。现在你的任务是,给定新满二叉树的深度 d 和下落的小球的编号 i ,可以假定 i 不超过给定的新满二叉树的叶子数,写一个程序求小球停止时的叶子序号 p。许多的小球一个一个的从一棵满二叉树上掉下来组成一个新满二叉树,每一时间,一个正在下降的球第一个访问的是非叶子节点。注:MYOJ没有多组测试点!,当访问到一个节点时,如果这个节点是。

2025-03-04 12:37:11 1077 1

原创 MYOJ_9275:(洛谷P6033)[NOIP 2004 提高组]合并果子加强版

(如果用int会WA,因为n10^7,ai每个10^5,那就是10^12,必须long long)输入的第二行有 n 个用空格隔开的整数,第 i 个整数代表第 i 堆果子的个数 ai​。- 本题输入规模较大,请注意数据读入对程序效率造成的影响。是O(n log n),n<=10^7,所以我们把他扔了。输入的第一行是一个整数 n,代表果子的堆数。对于全部的测试点,保证 1≤ai​≤105。- 请使用类型合适的变量来存储本题的结果。输出一行一个整数,表示最小耗费的体力值。本题除【数据范围与约定】外与。

2025-03-03 19:13:38 633

原创 MYOJ_1102:(洛谷P1540)[NOIP 2010 提高组]机器翻译

这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过 M−1,软件会将新单词存入一个未使用的内存单元;若内存中已存入 M 个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。

2025-03-03 13:50:38 482

原创 MYOJ_4580,4582(洛谷P1029)[NOIP 2001 普及组]最大公约数和最小公倍数问题(MYOJ4582为增强版)(暴力算法优化提高)

要求 P,Q 以 x0​ 为最大公约数,以 y0​ 为最小公倍数。对于 100% 的数据,2≤x0​,y0​≤10^5。一行一个数,表示求出满足条件的 P,Q 的个数。一样,唯一改变就是缩小了时间。试求:满足条件的所有可能的 P,Q 的个数。一行两个正整数 x0​,y0​。MYOJ_4582:本题和。

2025-03-03 10:29:27 475

原创 MYOJ_1057(洛谷P5015)[NOIP 2018 普及组]标题统计(string基础)

凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符?注意:标题中可能包含大、小写英文字母、数字字符、空格和换行符。统计标题字符数时,空格和换行符不计算在内。输出文件只有一行,包含一个整数,即作文标题的字符数(不含空格和换行符)。string水题,只不过有一个地方需要注意:输入方式。记得使用getline,不然输入到空格就停了。STEP 2:for遍历,非空格就++sum。输入文件只有一行,一个字符串 s。(无需考虑换行符,都只输入一行了)STEP 3:输出sum。

2025-03-03 10:11:01 431

原创 MYOJ_4707:(洛谷P1469)找筷子(位运算基础)

CX 小朋友找出了餐厅中所有的筷子,但遗憾的是这些筷子长短不一,而我们都知道筷子需要长度一样的才能组成一双,更麻烦的是 CX 找出来的这些筷子数量为奇数,但是巧合的是,这些筷子中只有一只筷子是落单的,其余都成双,善良的你,可以帮 CX 找出这只落单的筷子的长度吗?经过一段时间的紧张筹备,电脑小组的“RP 餐厅”终于开业了,这天,经理 LXC 接到了一个定餐大单,可把大家乐坏了!使用位运算中的异或,因为相同的两个数异或后就成0了,所以全部异或完就是落单的筷子。第一行是一个整数,表示筷子的数量 n。

2025-03-02 19:44:39 235

原创 MYOJ_4748:(洛谷P1045,openjudge1708)[NOIP 2003 普及组]麦森数(高精度计算及快速幂提高)

形如 2^P−1 的素数称为麦森数,这时 P 一定也是个素数。但反过来不一定,即如果 P 是个素数,2P−1 不一定也是素数。最大的一个是 P=3021377,它有 909526 位。第 2∼11 行:十进制高精度数 2P−1 的最后 500 位数字。(每行输出 50 位,共输出 10 行,不足 500 位时高位补 0)任务:输入 P(1000<P<3100000),计算 2P−1 的位数和最后 500 位数字(用十进制高精度数表示)第一行:十进制高精度数 2P−1 的位数。都这么长了,高精妥妥的。

2025-03-02 12:06:49 1069

原创 MYOJ_7778:无向图广度优先遍历(图论及vector邻接表实际运用,BFS基础)

本题限定在广度优先遍历过程中,如果同时出现多个待访问的顶点,则优先选择编号最小的一个进行访问,以顶点 1 为遍历起点。输入第一行为两个整数 n 和 e,分别表示图的顶点数和边数,其中 n 不超过 100,e 不超过 1000。接下来 e 行表示每条边的信息,每行为两个整数 a,b,表示该边的端点编号,但各边并非按端点编号顺序排列。输出为一行整数,每个整数后一个空格,即该无向图的广度优先遍历结点序列。图中包含 n 个顶点,编号为 1∼n。输入的边不存在自环与重边。,下面我会把不一样的步骤标红。

2025-03-01 18:13:04 570

原创 MYOJ_7458:无向图深度优先遍历(图论及vector邻接表实际运用,DFS基础)

还要定义一个标志位,不然下面的dfs会乱套。

2025-03-01 17:29:33 424

原创 MYOJ_7456:输出邻接点的数量(图论概念及基础运用)

先申请新节点,先把to值设成v(具体参照代码),再把下一个结点的地址设成第u个头结点,最后第u个头结点地址变为np,完成。第一行:两个整数n m,空格分开,n表示顶点数,m表示边数(1<=n<=100, 1<=m<=1000)进行q次询问,每次询问一个顶点的邻接点的数量。链式前向星是邻接表的一种,类似于链式存储结构,所以我们可以声明结点池。以下m行,每行两个整数f,t,表明从顶点f到顶点t有一条边。以下q行,每行一个整数v,表示要询问顶点v的邻接点。顶点编号为1,2,...,n。链式前向星必须插入,而且。

2025-03-01 15:10:09 580

原创 MYOJ_1047:(洛谷P1055)[NOIP 2008 普及组]ISBN号码(string提高运用)

以此类推,用所得的结果 mod11,所得的余数即为识别码,如果余数为 10,则识别码为大写字母 X。每一本正式出版的图书都有一个 ISBN 号码与之对应,ISBN 码包括 9 位数字、1 位识别码和 3 位分隔符,其规定格式如。ISBN 码的首位数字表示书籍的出版语言,例如 0 代表英语;你的任务是编写程序判断输入的 ISBN 号码中识别码是否正确,如果正确,则仅输出。,否则,按照规定的格式,输出正确的 ISBN 号码(包括分隔符。一行,假如输入的 ISBN 号码的识别码正确,那么输出。

2025-02-23 15:19:51 531

原创 MYOJ_4357:(洛谷P1028)[NOIP 2001 普及组]数的计算(递推)

请你求出,一共有多少个合法的数列。两个合法数列 a,b 不同当且仅当两数列长度不同或存在一个正整数 i≤∣a∣,使得 ai​!本题数据来源是 NOIP 2001 普及组第一题,但是原题的题面描述和数据不符,故对题面进行了修改,使之符合数据。这道题的解法很多,下文不一一赘述。(P.S.读这段之前请认真仔细的阅读错误代码2的思路!我们要求找出具有下列性质数的个数(包含输入的正整数 n)。错误解法2的答题思路是超级正确的,但还是有漏洞。输出一行一个整数,表示合法的数列个数。输入只有一行一个整数,表示 n。

2025-02-15 21:12:36 332

原创 MYOJ_4741:(洛谷P1096)[NOIP 2007 普及组]Hanoi 双塔问题(递归提高)

给定 A、B、C 三根足够长的细柱,在 A 柱上放有 2n 个中间有孔的圆盘,共有 n 个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为 n=3 的情形)。任务:设 An​ 为 2n 个圆盘完成上述任务所需的最少移动次数,对于输入的 n,输出 An​。现要将这些圆盘移到 C 柱上,在移动过程中可放在 B 柱上暂存。一个正整数, 为完成上述任务所需的最少移动次数 An​。一个正整数 n,表示在 A 柱上放有 2n 个圆盘。1:输入 1,输出 2;2:输入 2,输出 6。

2025-02-15 13:09:06 370

原创 MYOJ_4130:(洛谷P1010)[NOIP 1998 普及组]幂次方(递归运用)

向下取整。

2025-02-14 13:12:18 610

原创 MYOJ_10956:[模板]三维前缀和(前缀和深入提高)(求优化思路+代码)

其后 n 组,每组包括 m 行,每行有 l 个数组。每组之间用一个空行隔开。刚看了下面别人的提交记录,估计了下辅助空间居然是O(1),请问是怎么做的?欢迎在评论区附上您的代码!乍一看好像挺复杂,毕竟在二维的屏幕或者纸上不大好画三维的前缀和,其实这题可以先写个二维方便理解。第二行一个整数 MOD (10^5≤MOD≤10^10),保证 MOD 一定为质数。输出 n 组,每组包括 m 行,每行有 l 个数组。第一行包括三个整数 n,m,l (1≤n,m,l≤200)。给定一个三维数组,计算该数组的前缀和。

2025-02-13 17:51:58 452

原创 MYOJ_4278:[NOIP2004 提高组] 合并果子(fruit)

(一定一定要做两遍!!!,将两次结果相加插入队中。

2025-02-13 13:50:22 988 1

原创 MYOJ_7444:哈夫曼树(哈夫曼树,堆(优先队列priority_queue),简单dfs递归基础练习)

函数构造一棵树,再使用dfs递归调用,将每个叶子节点与根节点之间的长度和权值相乘计入sm,输出sm即可。STEP 5:dfs递归,如果是叶子节点就用sm把长度与权值相加,return。第二行:n个整数,为叶子结点的权值(权值w满足:1<=w<=100)给定各叶子结点的权值,构造哈夫曼树,输出该哈夫曼树的带权路径长度。申请新节点,权值相加,左右孩子分别为删掉的堆顶,插入优先队列。第一行:整数n(1<=n<=50)一个整数,为这棵树的带权路径长度。,重载小括号,判断权值,建大顶堆。(划线倾斜的要做两遍!

2025-02-11 21:39:55 349

原创 MYOJ_4558,4559,4560,5437:队列练习1~4(队列基础)

本题加了另外一个操作,访问队头元素(编号 3,不保证访问队头元素时或出队时队不为空)。,本题加了另外一个操作, 访问队头元素(编号 3,保证访问队头元素时或出队时队不为空),现在给出这 N 此操作,输出结果。当队头元素不为空的时候,输出对应的对头元素数据;此题为队列的基础,使用队列函数push(),pop(),empty(),front():给定一个队列(初始为空),只有两种操作入队和出队,现给出这些操作请输出最终的队头元素。现在给出这 N 此操作,输出访问队头元素结果。2 表示从队列中删除队首元素。

2025-02-11 15:10:57 408

原创 MYOJ_4554,4555,4556,5445:栈练习1~4(栈基础)

impossible!

2025-02-11 10:44:30 465 1

空空如也

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

TA关注的人

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