自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 动态规划专题4:不同路径

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。一个机器人位于一个 n x m 网格的左上角 (起始点在下图中标记为 “Start” )。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?接下来输入 n 行 m 列的数字,0表示没有障碍,1表示有障碍。其实可以将障碍的位置的路径数设为0,这样可以省去特判。网格中的障碍物和空位置分别用 1 和 0 来表示。输入两个数,分别表示 n 和 m(n 行 m 列)

2025-04-13 08:49:08 167

原创 动态规划专题3:最低通行费

好在这些毒花的长势不同,它们能够造成的伤害也不同。卡皮巴拉需要从左上角(1,1)处进入森林,从右下角(n,n)处离开森林,并且它必须在(2n-1)个单位时间穿越出去。卡皮巴拉要去寻宝,但是在它的必经之路上有一块 n*n 大小的原始森林。森林里每一个格子都长了一种有毒的花,经过这个格子的时候就会受到一定的伤害。后面 n 行,每行 n 个不大于100的整数,为网格上每个小方格的伤害(在100以内)第一行是一个整数,表示正方形的宽度 n (1≤ n <100)输出卡皮巴拉受到的最小伤害即可。

2025-04-13 08:44:34 168

原创 动态规划专题2:摘花生

地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。一行是两个整数,分别代表花生苗的行数 R 和列数 C (1 ≤ R, C ≤ 100)卡皮巴拉只能向东或向南走,不能向西或向北走。它来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。每行数据有C个整数,按从西向东的顺序描述了该行每株花生苗上的花生数目M。接下来R行数据,从北向南依次描述每行花生苗的情况。输出一行,内容为卡皮巴拉能摘到得最多的花生颗数。卡皮巴拉想摘点花生送给赵老师。

2025-04-13 08:41:14 162

原创 动态规划专题1:硬币问题

利用动态规划的状态转移方程,可得:dp[i]=min(dp[i-1]+1,dp[i-5]+1,dp[i-11]+1)。给定n,问:至少用多少枚硬币,可以恰好凑出n元?今有无限的面值为1,5,11元的硬币。一个整数,表现最少的硬币数。

2025-04-13 08:35:58 95

原创 GESP4级专题3:小杨的字典

和一些A语言单词构成,每个单词之间必定由至少一个标点符号分割,你的程序需要把这段话中的所有A语言单词替换成它的B语言翻译。在遥远的星球,有两个国家A国和B国,他们使用着不同的语言:A语言和B语言。小杨是B国的翻译官,他的工作是将A语言的文章翻译成B语言的文章。为了顺利完成工作,小杨制作了一本字典,里面记录了 个A语言单词对应的B语言单词,巧合的是,这些单词都由地球上的26个小写英文字母组成。例如,小杨的字典中包含2个A语言单词abc和d,它们的B语言翻译分别为a和def,那么我们可以把A语言文章。

2025-04-05 10:47:33 102

原创 GESP4级专题2:进制转换

N进制数指的是逢N进一的计数制。例如,人们日常生活中大多使用十进制计数,而计算机底层则一般使用二进制。除此之外,八进制和十六进制在一些场合也是常用的计数制(十六进制中,一般使用字母 A 至 F 表示十至十五;本题中,十一进制到十五进制也是类似的)。输入的第一行为一个十进制表示的整数N。接下来N行,每行一个整数K,随后是一个空格,紧接着是一个K进。在本题中,我们将给出N个不同进制的数。输出N行,每一个十进制数,表示对应K进制数的十进制数值。十位为F(转化为十进制的15),累加15*(16^1)

2025-04-05 10:42:53 216

原创 GESP4级专题1:幸运数

例如,16347:第1位为7,乘以7结果为49,大于9,各位数相加为13,仍大于9继续各位数相加,最后结果为4;最后变化结果为76344,对于结果76344其各位数之和为24,是8的倍数,因此16347是幸运数。奇数位做如下变换:将数字乘以7,如果不大于9则作为变换结果,否则把结果的各位数相加,如果结果不大于9则作为变换结果,否则(结果仍大于9)继续把各位数相加,直到结果不大于9,作为变换结果。变换结束后,把变换结果的各位数相加,如果得到的和是8的倍数,则称一开始的正整数为幸运数。

2025-04-05 10:34:13 288

原创 做出育才官网普及/提高-的题了!深搜专题14:玩木棒

输入文件中的第一行是一个整数 n 表示测试的组数,接下来 n 行表示每组的测试数据。每行的第一个数为 m(4≤m≤20),接下来 m 个数ai(1≤ai≤1000) 表示木棒的长度。现给出一些木棒长度,那么能否用给出的木棒(木棒全用完)组成一个正方形呢?对于每组测试数据,如果可以组成正方形输出“yes”,否则输出“no”。

2025-03-29 14:45:15 131

原创 深搜专题13.2 质数毛毛虫

如果一个数字能够被分成若干段,每一段的数字都是一个质数,那我们说这些质数串成了一条“质数毛毛虫”。例如,357111317就可以被分成3、5、7、11、13、17这6段,它们组成了一条“质数毛毛虫”。现在给你一些数字,请你判断,这些数字能不能被拆成由若干个质数组成的毛毛虫。这些数字能不能被拆成由若干个质数组成的毛毛虫。如果能,输出“yes”,如果不能,输出“no”。接下来 N 行,每行一个数字,在int范围内。第一行 N,表示有 N 个数字待输入。与上一题类似,注释详见13。

2025-03-29 14:40:14 166

原创 深搜专题13:分割回文串

给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案数。2种方案数是[“a”,“a”,“b”]和[“aa”,“b”]一个字符串 s,1 <= s的长度 <= 10。s 所有可能的分割方案数。可以使用拼接的方式。

2025-03-29 14:38:15 188

原创 外婆的数学题 (快速幂)

小C是个数学迷,总是缠着曾经是数学老师的外婆出题考考自己。输入包括两个整数,分别表示:x、y(1<=x,y<=1e9)。关键就是:底数翻倍,指数减半,指数是奇数就单独分出一个底数。这下可把小C给难住了,你能帮助他解决这个问题么?输出包括一个整数,表示算式的答案。

2025-03-25 21:13:58 179

原创 深搜专题12:售货员的难题

描述 某乡有n个村庄( 1 < n < 10 ),有一个售货员,他要到各个村庄去售货,各村庄之间的路程s(0 < s < 1000 )是已知的,且A村到B村与B村到A村的路大多不同。为了提高效率,他从商店出发到每个村庄一次,然后返回商店所在的村,假设商店所在的村庄为1,他不知道选择什么样的路线才能使所走的路程最短。请你帮他选择一条最短的路。村庄数n和各村之间的路程(均是整数)1 0 2 {村庄2到各村的路程}2 1 0 {村庄3到各村的路程}0 2 1{村庄1到各村的路程}

2025-03-15 14:47:22 202

原创 深搜专题11:分数字

描述 将整数N分成K个整数的和且每个数大于等于A小于等于B,求有多少种分法 注意:5 0 0 0 和 0 5 0 0被视为一种方法 输入描述 输入只有一行,分别输入N,K,A,B (所有数字均为不大于30的非负整数) 输出描述 输出只有一行,即多少种分法。这道题和分拆数字很像,只需加上对数值的判断即可。

2025-03-15 14:44:29 299

原创 深搜专题10:组合

描述 已知一个一维数组a[1..n](n<20),又已知一整数m。如能使数组a中任意几个元素之和等于m,则输出YES,反之则为NO。输入描述 输入包括两行,第一行包含两个整数n m(1<=n<20,1<=m<=1000000),第二行输入n个整数(每个数不会超过1000000)。输出描述 如能使数组a中任意几个元素之和等于m,则输出YES,反之则为NO。类似《专题3 素数圈》,为一维的深搜,比较简单。

2025-03-14 18:12:13 296

原创 深搜专题9:取数游戏

对于每一组数据,第一行有两个正整数 N 和 M,表示了数字矩阵为 N 行 M 列。接下来 N 行,每行 M 个非负整数,描述了这个数字矩阵。共 T 行,每行一个非负整数,输出所求得的答案。第一行有一个正整数 T,表示了有 T 组数据。类似宽搜的题目(毕竟是兄弟嘛!

2025-03-14 18:08:15 319

原创 深搜专题8:N皇后

描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行,每列,每条对角线(包括两条主对角线的所有对角线)上都至多有一个棋子,第i个数字表示在第i行的相应位置有一个棋子,如下: 行号 1 2 3 4 5 6 列号 2 4 6 1 3 5 这只是跳棋放置的一个解。请写一个程序找出所有跳棋放置的解,并把它们以上面的序列方法输出。输入描述 一个数字N (6<=N<=14) 表示棋盘是N x N大小的。输出描述 前三行为前三个解,每个解的两个数字之间用一个空格隔开。难点就是在如何判断对角线。

2025-03-14 18:05:04 293

原创 深搜の简介

深搜和宽搜像一对好兄弟,但有所不同。

2025-03-02 14:06:12 151

原创 深搜专题7:最大质数

给定一个正整数的序列,从中选出若干个数字,使它们的和为质数,请找出其中最大的一个质数。如果不存在任何组合的和为质数,则输出“NO”。接下来是一行正整数,共计 N 个,每个正整数的大小都不超过20。如果不存在任何组合的和为质数,则输出“NO”。一个整数 N (5 <= N <= 20)。

2025-03-02 13:54:12 245

原创 深搜专题6:迷宫问题

找出一条 从入口(左上角)到出口(右上角)的路径(不能重复)。如果无法到达,输出0。即从某点开始,有八个方向可走,前进方格中数字为0时表示可通过,为1时表示不可通过,要另找路径。设有一个N*N方格的迷宫,入口和出口分别在左上角和右上角。第1行有一个整数n,接下来n行每行有n个整数。输出符合题意的路径总数。

2025-03-02 13:51:26 172

原创 深搜专题5:分拆数字(个数确定)

将一个数字 n 分拆成 m 个正整数的和(m < n),按照字典序输出。(1、1、3)(1、3、1)(3、1、1)是相同的分拆方法。输入描述 两个正整数 n,m。(5 <= n <= 20)输出描述 按照字典序输出所有分拆方法,每个方法一行。加上个数的判断即可。

2025-03-02 13:49:08 134

原创 深搜专题4:分拆数字

将一个数字 n 分拆成若干个正整数的和(它本身也是一种分拆方法),按照字典序输出。(1、1、3)(1、3、1)(3、1、1)是同一种分拆方法。一个正整数 n,(5 <= n <= 20)按照字典序输出所有分拆方法,每个方法一行。

2025-03-02 13:46:01 176

原创 深搜专题3:素数圈

描述 正整数n表示有n个数,分别是正整数1~n,然后把这n个数组成一个圈,使得相邻两个整数之和均为素数。输出时,从整数1开始逆时针排列。1 4 3 2 5 6 得解。(6+4=10,不行,回退)(4+5=9,不行,回退)(3+5=8,不行,回退)(3+6=9,不行,回退)(2+4=6,不行,回退)(5+3=8,不行,回退)(5+4=9,不行,回退)(6+3=9,不行,回退)(2+6=8,不行,回退)(1+3=4,不行,回退)(4+2=6,不行,回退)输入描述 输入整数n。输出描述 按要求输出。

2025-02-23 10:10:53 257

原创 深搜专题2:组合问题

所有的组合,每一个组合占一行且其中的元素按由小到大的顺序排列,所有的组合也按字典顺序。一行两个自然数n、r ( 1 < n < 21,1 < = r < = n )。我们可以简单地将n个元素理解为自然数1,2,…,n,从中任取r个数。组合问题就是从n个元素中抽出r个元素(不分顺序且r < = n),字典顺序及从小到大。

2025-02-22 13:28:51 323

原创 深搜专题1:全排列问题

排列,一般地,从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排列(Arrangement)。特别地,当m=n时,这个排列被称作全排列(Permutation)。输出所有的全排列,每个排列占一行,同一个排列中,两个数之间用一个空格隔开。每个全排列一行,相邻两个数用空格隔开(最后一个数后面没有空格)现给一个正整数(1<=n<=8),输出所有全排列。

2025-02-22 13:25:58 175

原创 双指针专题4:区间最大和

求出这个数列中的一个子区间[i,j],也就是在这个数列中连续的数字使得这个子区间的和在不超过m的情况下最大。(14-5=9<10:mx=9,但没有>mx,所以l1和r1不更新,r++)一行,三个整数,表示符合题意的区间的左端点、右端点和累加和。(20-14=6<10:r++,但r>n,所以循环结束)如果有多个区间符合要求,请输出最靠前的那一个区间。5 9 14 20(前缀和)给定n个正整数组成的数列a。第一行,两个整数n,m;

2025-02-15 15:05:59 157

原创 双指针专题3:连续自然数和(plus)

每行两个自然数,给出一个满足条件的连续自然数段中的第一个数和最后一个数,两数之间用一个空格隔开,所有输出行的第一个按从小到大的升序排列,对于给定的输入数据,保证至少有一个解。例子:1998+1999+2000+2001+2002 = 10000,所以从1998到2002的一个自然数段为M=10000的一个解。对一个给定的自然数M,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为M。包含一个整数的单独一行给出M的值(10 <= M <= 2,000,000)。

2025-02-15 14:51:19 140

原创 双指针专题2:最长连号

输入长度为n的一个正整数序列,要求输出序列中最长连号的长度连号指在序列中,从小到大的连续自然数。第二行,n个整数ai​,之间用空格隔开。一个数,最长连号的个数。第一行,一个整数n。

2025-02-15 14:44:15 180

原创 双指针专题1:有效三角形的个数

给定一个正整数n,输入一行包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。输出其中可以组成三角形三条边的三元组个数。第二行输入n个nums[i]第一行输入一个正整数n。

2025-02-15 14:40:29 173

原创 二分查找的简单介绍

问题:给定一个有序(非降序)数组,可含有重复元素,求找到目标值最少需要几次。第三行输入一个整数k(1<=k<=1000),表示需要进行k次查找;二分查找是一种优化算法,简单说就是让你从10秒找到变成1秒找到。二分查找具有单调性,因为它是通过“哨兵”与目标值比较而做选择的。接下来输入k行,每行输入一个整数x(每个数不会超过10^7)例如:A[2,4,6,8,8,8,9]求8的最少次数:1。5 6 7 8(小了,以他的下一个数为左边界)7 8(大了,以他的前一个数为右边界)输出k行,对应每次查找的结果。

2025-02-13 12:44:21 145

原创 育才官网 WT1029【集训题】古风排版

描述 中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。输入描述 输入在第一行给出一个正整数 N(<100),是每一列的字符数。第二行给出一个长度不超过 1000 的非空字符串,以回车结束。输出描述 按古风格式排版给定的字符串,每列 N 个字符(除了最后一列可能不足 N 个)。

2025-02-11 17:49:42 354

原创 育才官网 XL035 小小李的灵感

小小李在写回文数的时候突然来了灵感,发现字符串也有回文的情况,那包含空格的时候呢?于是想请你编写一个程序,给定一个包含空格的字符串,需要你输出最长对称子串的长度。例如,给定Is XXL&LXX symmetric?,最长对称子串为s XXL&LXX s,于是你应该输出11。输入在一行中给出长度不超过100000的非空字符串。在一行中输出最长对称子串的长度。

2025-02-11 17:44:08 135

原创 育才官网 HN062 最大的和

在一次操作中,你可以选择两个索引 l 和 r (1 ≤ l < r ≤ n),使得 s[l] = ‘L’ 且 s[r] = ‘R’,并执行以下操作,将 a[l] + a[l+1] + ……1 2 3 4 5 第一次:l=1,r=5,1+2+3+4+5=15。然后选择 l = 3, r = 6,并将 1 + 4 + 3 + 2 加到你的得分中。你可以首先选择 l = 1,r = 2,并将 3 + 5 = 8 加到你的得分中。第二次:l=3,r=4,3+4=7。例如,对于下面的条带:!

2025-02-11 17:38:55 214

原创 二分题 育才官网 HN057 建造水族箱

每个测试用例的第一行包含两个正整数 n 和 x,(1 ≤ n ≤ 100000,1 ≤ x ≤ 1000000000)—— 珊瑚的柱子数量和你可以使用的最大水量。想个极端情况,假设其他所有珊瑚都为1e9,只有一个为1,那最大的墙壁高度就是这根最短的加上水的总量。每个测试用例的第二行包含 n 个空格分隔的整数 ai(1 ≤ ai ≤ 1000000000) —— 珊瑚柱子的高度。3、将水箱注满水,使得每根柱子的高度为 h,除非珊瑚的高度超过 h,这种情况下,该柱子不需要添加水。记得用long long!

2025-02-10 14:37:38 287

原创 变形的宽搜 育才官网 HN036 涂色游戏

一个由 n × n 个单元格组成的白色格子纸,按照事先给定的 m 次操作,一个接一个地把白色单元格涂黑,总共在纸上涂 m 个不同的单元格。第i行包含两个整数xi,yi(1 ≤ xi, yi ≤ n)表示第i次操作中被涂黑的方块的行号和列号。第一行包含两个整数 n 和 m (1 ≤ n ≤ 1000,分别表示方格纸的大小和操作次数)在一行上打印问题的答案 —— 方格纸上至少有一个边长为3的黑色方块时的最小操作次数。李老师想知道,在涂黑的过程中,要出现一个边长为3的黑色方块,需要进行多少次操作?

2025-02-10 14:29:43 311

原创 育才官网 HN040 吃巧克力

当玩家吃掉一块巧克力时,他立即开始吃下一块,但不允许同时吃两块巧克力,且不允许留下未吃完的巧克力。如果两名玩家同时开始吃同一块巧克力,小小铜会把它让给小小李。第二行包含一个序列 ti(1 ≤ ti ≤ 1000),代表吃掉第 i 块巧克力所需的时间(以秒为单位)(按从左到右的顺序)输出两个数字 a 和 b,其中 a 是小小李吃掉的巧克力数量,b 是小小铜吃掉的巧克力数量。小小李从左到右开始吃巧克力,小小铜从右到左开始吃。对于每块巧克力,玩家吃掉它所需的时间已知(小小李和小小铜以相同的速度吃)。

2025-02-10 14:25:35 187

原创 祝大家新年财源滚滚!育才官网 XL031 蛇年之抢红包

按照收入金额从高到低的递减顺序输出每个人的编号和收入金额(以元为单位,输出小数点后2位)。如果收入金额有并列,则按抢到红包的个数递减输出;小小李当然也会“相亲相爱一家人”里面抢红包和发红包,但他很好奇群里到底谁赚了谁亏了,需要你帮忙统计一下,大年三十晚上在“相亲相爱一家人”中各位家人们抢红包的收获。其中K(0≤K≤20)是发出去的红包个数,Ni是抢到红包的人的编号,Pi(>0)是其抢到的红包金额(以分为单位)。输入第一行给出一个正整数N(≤104),即参与发红包和抢红包的总人数,则这些人从1到N编号。

2025-02-10 14:20:46 298

原创 育才官网 【集训题】原原的推荐

输入第一行给出 3 个正整数: N(≤10^5) 为参赛学生人数,K(≤5×10^3) 为企业接受的推荐批次,S(≤100) 为该企业的 YCPA 面试分数线。天梯赛结束后,某企业的人力资源部希望组委会能推荐一批优秀的学生,这个整理推荐名单的任务就由原原老师负责。如果有的学生天梯赛成绩虽然与前一个人相同,但其参加过 YCPA(育才编程能力认证),且成绩达到了该企业的面试分数线,则也可以接受。给定全体参赛学生的天梯赛成绩和他们的 YCPA 考试成绩,请你帮原原老师算一算,她最多能向企业推荐多少学生?

2025-02-09 18:44:59 122

原创 前缀和基础 求区间和

给定n个正整数组成的数列 a1​,a2​,⋅⋅⋅,an​和m 个区间[li​,ri​],分别求这 m 个区间的区间和。接下来m 行,每行为两个正整数li​,ri​,满足 1≤li​≤ri​≤n。第二行,为n个正整数a1​,a2​,⋅⋅⋅,an​。第i行为第i组答案的询问。第一行,为一个正整数n。第三行,为一个正整数m。

2025-02-08 09:47:18 155

原创 育才官网 10865 精明的原原

原原园长是一个惊人的会计,并意识到自己可能遇到了动物园的资金周转不灵时期。她已经计算和记录了N天(1≤N≤100000)每一天需要花费资金的确切数额(1≤moneyi​≤10000)。由于每天向别人支付花费是一件非常麻烦的事情,所以聪明的原原把连续的几天打包成一个集合,最多M(1≤M≤N)个集合,每个集合付一次钱。这样就可以减少付钱的次数,当然总数是不变的。对于每种分配方式,存在一个评价系数level,level为每一次付出费用的最大值。level的值最小为单天花费资金的最大值,最大为所有的花费资金。

2025-02-08 09:42:42 128

原创 二分专题:育才官网 原原切割网线

为了买网线,组委会与当地的网络公司联系,要向他们购买一定数目的等长网线,这些网线要尽可能的长,使得组织者可以让选手们彼此远离。原原想求出这个长度,她知道你非常精通编程,她希望你能编一个程序求出为了得到一定数目的等长网线,每根网线最大的可能长度。原原清楚地知道仓库里每根网线的长度(精确到厘米:cm),她也可以将他们以厘米的精度切割——前提是她得知道切成多长。N(1≤N≤10000)是仓库里光缆的数目,K(1≤K≤10000)是需要的网线数目。接下来的N行每行只有一个实数,告诉你每根缆线的长度(单位:m)。

2025-02-05 11:36:01 398

空空如也

空空如也

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

TA关注的人

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