题解
南山芽木
这个作者很懒,什么都没留下…
展开
-
码蹄集周赛题解——这是不是公约数
数学题+套公式+快速幂+公约数。原创 2024-11-02 17:45:21 · 212 阅读 · 0 评论 -
码蹄集周赛复题——消灭怪兽
一开始暴力思路:想从血量从大到小排序之后按照要求依次减少血量直至抹杀,但是没全通过T_T题解思路:血量从少到多排序,用sum[i]记录血量从高到低直至第i个怪兽的分数和,用t记录累计要扣除的血量。累计过程中若第idx个怪兽的血量不够扣除则向后移动idx,当op=2时直接输出sum[idx]即为所有存活的怪兽分数。原创 2024-11-02 16:49:09 · 222 阅读 · 0 评论 -
码题集周赛复题——定义一个函数
比较简单的题,相当于直接从小到大枚举没有出现过的数字,用map判断即可,顺便复习map用法。原创 2024-11-02 16:12:19 · 158 阅读 · 0 评论 -
NC92 最长公共子序列(二)
描述给定两个字符串str1和str2,输出两个字符串的最长公共子序列。如果最长公共子序列为空,则返回"-1"。目前给出的数据,仅仅会存在一个最长的公共子序列数据范围:0 \le |str1|,|str2| \le 20000≤∣str1∣,∣str2∣≤2000要求:空间复杂度 O(n^2)O(n2) ,时间复杂度 O(n^2)O(n2示例1输入:复制返回值:“123456”复制示例2输入:复制返回值:“-1”原创 2024-03-26 16:40:07 · 346 阅读 · 0 评论 -
无法吃午餐的学生数量
学校的自助午餐提供圆形和方形的三明治,分别用数字 0 和 1 表示。所有学生站在一个队列里,每个学生要么喜欢圆形的要么喜欢方形的。餐厅里三明治的数量与学生的数量相同。所有三明治都放在一个 栈 里,每一轮:如果队列最前面的学生 喜欢 栈顶的三明治,那么会 拿走它 并离开队列。否则,这名学生会 放弃这个三明治 并回到队列的尾部。这个过程会一直持续到队列里所有学生都不喜欢栈顶的三明治为止。原创 2024-03-26 15:41:44 · 296 阅读 · 0 评论 -
AB6 表达式求值
描述请写一个整数计算器,支持加减乘三种运算和括号。数据范围:0\le |s| \le 1000≤∣s∣≤100,保证计算结果始终在整型范围内要求:空间复杂度: O(n)O(n),时间复杂度 O(n)O(n)示例1输入:“1+2”返回值:3示例2输入:“(2*(3-4))5"返回值:-10示例3输入:"3+23*4-1”返回值:26。原创 2024-03-26 12:52:58 · 252 阅读 · 0 评论 -
AB5 点击消除
描述牛牛拿到了一个字符串。他每次“点击”,可以把字符串中相邻两个相同字母消除,例如,字符串"abbc"点击后可以生成"ac"。但相同而不相邻、不相同的相邻字母都是不可以被消除的。牛牛想把字符串变得尽可能短。他想知道,当他点击了足够多次之后,字符串的最终形态是什么?输入描述:一个字符串,仅由小写字母组成。(字符串长度不大于300000)输出描述:一个字符串,为“点击消除”后的最终形态。若最终的字符串为空串,则输出0。示例1输入:abbc输出:ac示例2。原创 2024-03-26 12:12:39 · 320 阅读 · 0 评论 -
AB2 栈的压入、弹出序列
描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。原创 2024-03-26 11:32:22 · 181 阅读 · 0 评论 -
堆排序问题
【代码】堆排序问题。原创 2024-03-25 17:21:57 · 100 阅读 · 0 评论 -
AB20 走迷宫
描述给定一个n\times mn×m的网格,在网格中每次在不超过边界的情况下可以选择向上、向下、向左、向右移动一格。网格中的一些格子上放置有障碍物,放有障碍物的格子不能到达。最少的移动次数。若不能到达,输出-1−1。输入描述:第一行输入两个整数n,mn,m (1\le n, m \le 10001≤n,m≤1000),表示网格大小。第二行输入四个整数,表示起点和终点的坐标。接下来的nn行,每行输入一个长度为mm的字符串。原创 2024-03-25 16:58:17 · 201 阅读 · 0 评论 -
AB23 kotori和素因子
描述kotori拿到了一些正整数。她决定从每个正整数取出一个素因子。但是,kotori有强迫症,她不允许两个不同的正整数取出相同的素因子。她想知道,最终所有取出的数的和的最小值是多少?注:若 a\bmod k== 0amodk==0,则称 kk 是 aa 的因子。若一个数有且仅有两个因子,则称其是素数。显然1只有一个因子,不是素数。输入描述:第一行一个正整数 nn ,代表kotori拿到正整数的个数。第二行共有 n 个数 ,表示每个正整数的值。保证不存在两个相等的正整数。原创 2024-03-25 14:46:07 · 275 阅读 · 0 评论 -
AB25 ranko的手表
描述ranko 的手表坏了,正常应该显示 xx:xx 的形式(4 个数字),比如下午 1 点半应该显示 13:30 ,但现在经常会有一些数字有概率无法显示。这两个时刻之间相距的时间的最大值和最小值是多少?在同一天的 00:00 到 23:59 之间。输入描述:两行输入两个时间,为 xx:xx 的形式。其中 xx 为数字或者字符 ‘?’ ,问号代表这个数字没有显示。保证输入是合法的。输出描述:一行输出两个整数,分别代表相距时间的最小值和最大值(单位分钟)。示例1。原创 2024-03-24 23:23:15 · 294 阅读 · 0 评论 -
AB27 循环汉诺塔
描述Eli最近迷上了汉诺塔。她玩了传统汉诺塔后突发奇想,发明了一种新的汉诺塔玩法。有A、B、C三个柱子顺时针放置,移动的次序为A仅可以到B,B仅可以到C、C仅可以到A。即只可顺时针移动,不可逆时针移动。当然,汉诺塔的普适规则是适用的:每次移动后,大金片必须在小金片的下面。现在A柱子上有n\n 个金片。Eli想知道,她把这些全部移动到B或C,分别要多少次操作?输入描述:一个正整数n输出描述:两个整数,分别代表A移到B和A移到C的最少操作数。原创 2024-03-24 23:07:44 · 305 阅读 · 0 评论 -
AB28 快速幂
描述请你计算 a^b\ mod\ pabmod p 的值。一共有 qq 次询问。输入描述:第一行输入一个正整数 qq ,代表询问次数。接下来每行输入三个正整数 a,b,pa,b,p,代表一次询问。输出描述:对于每次询问,输出一个整数,代表 a^b\ mod\ pabmod p 的值。示例1输入:22 2 63 4 10复制输出:41。原创 2024-03-24 22:53:09 · 242 阅读 · 0 评论 -
AB29 快速乘
描述请你计算 ab\ mod\ pa∗b mod p 的值。要求只能使用加法和取模运算,且计算过程中的值不能超过 210^72∗107。一共有 qq 次询问。输入描述:第一行输入一个正整数 qq ,代表询问次数。接下来每行输入三个正整数 a,b,pa,b,p ,代表一次询问。输出描述:对于每次询问,输出一个整数,代表 a*b\ mod\ pa∗b mod p 的值。示例1输入:22 2 63 4 10输出:42。原创 2024-03-24 22:40:56 · 207 阅读 · 0 评论 -
常见排序算法总结
【代码】常见排序算法总结。原创 2024-03-24 22:35:41 · 392 阅读 · 0 评论 -
AB33 相差不超过k的最多数
描述给定一个数组,选择一些数,要求选择的数中任意两数差的绝对值不超过 kk。问最多能选择多少个数?输入描述:第一行输入两个正整数 nn和kk。第二行输入 n 个正整数,用空格隔开,表示这个数组。输出描述:一个正整数,代表能选的最多数量。数据范围:示例1输入:5 32 1 5 3 2输出:4说明:显然,1和5不能同时选。所以最多只能选4个数。原创 2024-03-24 19:59:53 · 207 阅读 · 0 评论 -
AB40 【模板】01背包
描述你有一个背包,最多能容纳的体积是V。现在有n个物品,第i个物品的体积为vi ,价值为wi。(1)求这个背包至多能装多大价值的物品?(2)若背包恰好装满,求至多能装多大价值的物品?输入描述:第一行两个整数n和V,表示物品个数和背包体积。接下来n行,每行两个数vi 和wi,表示第i个物品的体积和价值。输出描述:输出有两行,第一行输出第一问的答案,第二行输出第二问的答案,如果无解请输出0。示例1输入:3 52 104 51 4输出:149。原创 2024-03-23 23:12:08 · 326 阅读 · 0 评论 -
AB39 [NOIP2001]装箱问题
描述有一个箱子容量为V(正整数,0 ≤ V ≤ 20000),同时有n个物品(0<n ≤ 30),每个物品有一个体积(正整数)。要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。输入描述:1个整数,表示箱子容量1个整数,表示有n个物品接下来n行,分别表示这n个物品的各自体积输出描述:1个整数,表示箱子剩余空间。示例1输入:2468312797复制输出:0。原创 2024-03-23 22:36:52 · 234 阅读 · 0 评论 -
DP22 最长回文子序列
输入描述:输入一个字符串输出描述:输出最长回文子序列示例1输入abccsb输出4说明分别选取第2、3、4、6位上的字符组成“bccb”子序列是最优解示例2输入abcdewa输出3说明分别选取第一个和最后一个a,再取中间任意一个字符就是最优解DP22 最长回文子序列描述给定一个字符串,找到其中最长的回文子序列,并返回该序列的长度。注:回文序列是指这个序列无论从左读还是从右读都是一样的。原创 2024-03-23 17:45:12 · 378 阅读 · 0 评论 -
KY141 最大连续子序列
描述给定K个整数的序列{ N1, N2, …, NK },其任意连续子序列可表示为{ Ni, Ni+1, …, Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序列中元素和最大的一个,例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和为20。现在增加一个要求,即还需要输出该子序列的第一个和最后一个元素。原创 2024-03-23 17:11:26 · 207 阅读 · 0 评论 -
KY22 最大序列和
描述给出一个整数序列S,其中有N个数,定义其中一个非空连续子序列T中所有数的和为T的“序列和”。对于S的所有非空连续子序列T,求最大的序列和。变量条件:N为正整数,N≤1000000,结果序列和在范围(-263-1)以内。输入描述:第一行为一个正整数N,第二行为N个整数,表示序列中的数。输出描述:输入可能包括多组数据,对于每一组输入数据, 仅输出一个数,表示最大序列和。示例1输入:51 5 -3 2 464输出:97-1。原创 2024-03-23 16:38:48 · 300 阅读 · 0 评论 -
畅通工程续
某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。Input本题目包含多组数据,请处理到文件结束。每组数据第一行包含两个正整数N和M(0<N<200,0<M<1000),分别代表现有城镇的数目和已修建的道路的数目。城镇分别以0~N-1编号。接下来是M行道路信息。原创 2024-03-23 15:54:44 · 262 阅读 · 0 评论 -
KY119 畅通工程
描述省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。输入描述:测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路条数 N、村庄数目M (N, M < =100 );随后的 N 行对应村庄间道路的成本,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间道路的成本(也是正整数)。原创 2024-03-23 00:14:02 · 232 阅读 · 0 评论 -
KY126 畅通工程
描述某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?输入描述:测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M;随后的M行对应M条道路,每行给出一对正整数,分别是该条道路直接连通的两个城镇的编号。为简单起见,城镇从1到N编号。原创 2024-03-22 23:26:46 · 194 阅读 · 0 评论 -
KY118 继续畅通工程
描述省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。输入描述:测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( 1< N < 100 );原创 2024-03-22 23:02:11 · 295 阅读 · 0 评论 -
KY148 还是畅通工程
描述某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。输入描述:测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编号。原创 2024-03-22 22:10:45 · 168 阅读 · 0 评论 -
KY175 连通图
给定一个无向图和其中的所有边,判断这个图是否所有顶点都是连通的。输入描述:每组数据的第一行是两个整数 n 和 m(0=n=1000)。n 表示图的顶点数目,m 表示图中边的数目。随后有 m 行数据,每行有两个值 x 和 y(0x, y =n),表示顶点 x 和 y 相连,顶点的编号从 1 开始计算。输入不保证这些边是否重复。输出描述:对于每组输入数据,如果所有顶点都是连通的,输出"YES",否则输出"NO"。示例1输入4 31 22 33 23 21 2。原创 2024-03-22 17:40:47 · 313 阅读 · 0 评论 -
poj 2362 Square
Time Limit: 3000MS Memory Limit: 65536KTotal Submissions: 31908 Accepted: 10396DescriptionGiven a set of sticks of various lengths, is it possible to join them end-to-end to form a square?InputThe first line of input contains N, the number of test cas原创 2024-03-21 23:05:00 · 270 阅读 · 0 评论 -
A Knight‘s Journey
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 73299 Accepted: 25230DescriptionBackgroundThe knight is getting bored of seeing the same black and white squares again and again and has decided to make a journeyaround the world. Whenever a k原创 2024-03-21 22:58:42 · 453 阅读 · 0 评论 -
Catch That Cow
Time Limit: 2000MS Memory Limit: 65536KTotal Submissions: 219497 Accepted: 66357DescriptionFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and原创 2024-03-20 22:19:49 · 319 阅读 · 0 评论 -
KY146 魔咒词典
描述哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助。给你一部魔咒词典。当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能;当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒。如果他要的魔咒不在词典中,就输出“what?原创 2024-03-20 21:35:13 · 386 阅读 · 0 评论 -
KY195 查找
描述读入一组字符串(待操作的),再读入一个int n记录记下来有几条命令,总共有2中命令:1、翻转 从下标为i的字符开始到i+len-1之间的字符串倒序;2、替换 命中如果第一位为1,用命令的第四位开始到最后的字符串替换原读入的字符串下标 i 到 i+len-1的字符串。每次执行一条命令后新的字符串代替旧的字符串(即下一条命令在作用在得到的新字符串上)。命令格式:第一位0代表翻转,1代表替换;第二位代表待操作的字符串的起始下标int i;第三位表示需要操作的字符串长度int len。原创 2024-03-20 17:41:35 · 206 阅读 · 0 评论 -
查找第k小数
描述查找一个数组的第K小的数,注意同样大小算一样大。如 2 1 3 4 5 2 第三小数为3。输入描述:输入有多组数据。每组输入n,然后输入n个整数(1<=n<=1000),再输入k。输出描述:输出第k小的整数。示例1输入:63输出:3。原创 2024-03-20 16:36:41 · 221 阅读 · 0 评论 -
查找学生信息
描述输入N个学生的信息,然后进行查询。输入描述:输入的第一行为N,即学生的个数(N<=1000) 接下来的N行包括N个学生的信息,信息格式如下: 01 李江 男 21 02 刘唐 男 23 03 张军 男 19 04 王娜 女 19 然后输入一个M(M<=10000),接下来会有M行,代表M次查询,每行输入一个学号,格式如下: 02 03 01 04输出描述:输出M行,每行包括一个对应于查询的学生的信息。如果没有对应的学生信息,则输出“No Answer!示例1输入:4。原创 2024-03-20 16:23:51 · 214 阅读 · 0 评论 -
复数集合问题
描述一个复数(x+iy)集合,两种操作作用在该集合上: 1、Pop 表示读出集合中复数模值最大的那个复数,如集合为空 输出 empty ,不为空就输出最大的那个复数并且从集合中删除那个复数,再输出集合的大小SIZE;2 Insert a+ib 指令(a,b表示实部和虚部),将a+ib加入到集合中 ,输出集合的大小SIZE;最开始要读入一个int n,表示接下来的n行每一行都是一条命令。输入描述:输入有多组数据。每组输入一个n(1<=n<=1000),然后再输入n条指令。原创 2024-03-20 15:27:25 · 223 阅读 · 0 评论 -
哈夫曼树问题
描述哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和的最小值。输入描述:输入有多组数据。每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000)。输出描述:输出权值。示例1输入:51 2 2 5 9输出:37。原创 2024-03-19 23:23:41 · 137 阅读 · 0 评论 -
树查找问题
描述输入一系列整数,建立二叉排序树,并进行前序,中序,后序遍历。输入描述:输入第一行包括一个整数n(1原创 2024-03-19 23:06:14 · 225 阅读 · 0 评论 -
二叉搜索树
描述判断两序列是否为同一二叉搜索树序列输入描述:开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束。接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树。输出描述:如果序列相同则输出YES,否则输出NO示例1输入:25674325432675763420输出:YES。原创 2024-03-19 22:37:32 · 156 阅读 · 0 评论 -
SDUT 走迷宫
有一个mn格的迷宫(表示有m行、n列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,输入这mn个数据和起始点、结束点(起始点和结束点都是用两个数据来描述的,分别表示这个点的行号和列号)。现在要你编程找出所有可行的道路,要求所走的路中没有重复的点,走时只能是上下左右四个方向。如果一条路都不可行,则输出相应信息(用-1表示无路)。Input第一行是两个数m,n(1< m, n< 15),接下来是m行n列由1和0组成的数据,最后两行是起始点和结束点。Output。原创 2024-03-16 23:44:38 · 396 阅读 · 0 评论