自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 乌托邦树-蓝桥

设置一个01标识,1表示春天,0表示夏天,经历某个周期后0变1,1变0,春天时翻倍,夏天加一,循环n次。

2024-01-13 23:40:40 1777

原创 dfs板子

【代码】递归实现排列型枚举。

2024-04-12 20:52:13 295

原创 P1036 [NOIP2002 普及组] 选数

在n个数里取m个数,每个数大于前一项,意思就是只能在当前的数的后面取数,dfs搜索题,函数里存两个参数,依次是当前取数的位置和要开始取的数,依次加加往下取,直到大于,就把取到数当作数组索引,依次把数加起来,再判断每回合取的数的和是否为质数。

2024-04-02 18:12:14 277

原创 P1115 最大子段和

有点动态规划的思想,判断当前序列加上当前的值是否大于当前值,如果小于,那么当前序列更新为当前值,否则为加上该值后的序列,再用一个变量来存最大字段和,比较每次的序列和ans,返回大的值,注意要把初始值设置为最小,避免数组全为负数,讲的可能有点抽象,具体看代码。

2024-03-31 23:29:43 208

原创 ACGO愚人节欢乐赛#18

判断每个字符是否是小写字母,存到map或者set集合里,返回集合长度即可,注意字符串里有空格,所以不能用cin读入字符串,cin读入空格就会结束,所以可以用getline来读入字符串。从头遍历找最大值索引,从尾遍历找最小值索引,如果最大值索引小于最小值所以,直接加上最大值索引到头的距离和最小值到尾的距离的和,否则再减一,因为两者有交集重复计算了。将数组升序排序,然后找每m个数的最大值减最小值的最小值,如不不排序直接判断的话,不能保证最优解。两个数组,一个数组存要送给谁,一个存谁送给了当前索引的小朋友。

2024-03-30 23:18:05 344

原创 P2036 [COCI2008-2009 #2] PERKET

dfs模板题,枚举每种调料取和不取,至少选一种调料,每次作比较即可。

2024-03-20 23:05:57 242

原创 P1149 [NOIP2008 提高组] 火柴棒等式

dfs模板题,dfs函数里放两个参数,一个是当前取到的数的索引,一个是取当前数所需要的火柴数量,因为是两个数相加等于另一个数,所以当取到的数超过了3个时,判断前两个数相加是否等于第三个数,并且火柴数量等于题目所需的火柴数量时,样例加一,然后return做剪枝操作。当这个数取到过后,往下搜索,取下个数,火柴数加上当前数需要的火柴数。如果总火柴数大于了题目所需火柴数,return剪枝。

2024-03-19 19:05:45 198

原创 Remove Prefix

从最后开始遍历,用map记录每个数出现的次数,再定义一个num记录遍历的次数,要是没超过1,次数加一,超过就结束循环,输出数组长度减去num即可。

2024-03-14 20:26:41 211

原创 P1216 [USACO1.5] [IOI1994]数字三角形 Number Triangles

但是这样超时了,可以优化一下,想到记忆化搜索,就是把经过的最大路径存起来,遇到直接使用即可。最优路径问题,首先想到dfs深度优先搜索,一直往下走再回溯上一格换个方向走。ac了,遇到类似的题都可以先dfs再剪枝再转换成动态规划,可以直接套用模板。好多了,但是还是有一个测试点t了,直接转换成动态规划。

2024-03-12 21:32:35 324

原创 跳台阶(记忆化搜索)

这道题很多人会直接暴力递归,但是n到一定数的时候就会超时,时间复杂度时O(2^n),效率非常低下,可以使用一个数组存储已经出现过的台阶级数,再递归时遇到就不需要继续往下搜索了,从而实现剪枝。去掉多于分支后时间复杂度为O(n)

2024-03-12 14:20:56 309 2

原创 Codeforces Round 933 (Div. 3)C:Rudolf and the Ugly String

题目大概意思是字符串中最少去掉几个单词可以使字符串变漂亮,其实只要找“map"和”pie“这两个单词数量,注意判断"mappie",这种情况只算一种,所以遇到这种情况就减一,最后输出答案即可。

2024-03-12 14:03:28 277 4

原创 Word Game

用map存字母和出现的次数,然后遍历三个字母数组,如果map值为1,则加三分,为2加1分,否则不加分。

2024-03-06 21:56:23 604

原创 Free Cash

题目大概意思就是一张现金只能服务一个客人,如果一个时间点有多位客人来仿,就需要相应的现金服务客人,可以先把现金数赋值为1,然后找相同时间点的客人,直到不相等或者最后一位客人,然后判断现金数,如果小于人数,就把人数赋值给现金数,人数变为1重新找相等人数,循环结束输出现金数。

2024-03-05 14:00:06 410

原创 递归实现指数型枚举

递归思想,创建一个长度为n的数组,来存是否取当前的数,1代表取,2代表不取,先取,然后判断下一个数,直到大于n为止,输出为值1的索引,然后往上回溯,值重新赋值为0。

2024-03-04 22:40:03 770

原创 Game With Sticks

直接判断n就行,偶数M赢,奇数A赢。如果n > m,交换。

2024-03-03 22:45:36 351

原创 Puzzles

题目大概意思就是在一个数组里找n个数里的最大值减最小值的最小值,先排序,然后将第i + n - 1项减去第i项与最小值作比较,输出最小值即可,注意循环结束边界。

2024-03-03 21:34:34 306

原创 黑龙江工程学院春季集训队选拔赛

创建一个数组,0表示不知道秘密,1表示知道brr[arr[i] - 1]表示这个小伙伴把秘密分享给了第i - 1个小伙伴,就加加,知道秘密的人数加一,如果brr[i]大于1说明消息又传回来了,结束循环,输出知道秘密的数量。将三天成绩加起来存到一个数组中,再创建一个数组存成绩,然后排序第一个数组,遍历第二个数组,当某个人的成绩 + 300大于排序数组的第n - k项,输出Yes,否则No。

2024-03-02 20:56:36 521

原创 Petr and Book

可以将七天读的页数存在一个数组里,遍历数组,加上每一天的页数,如果是周天,又重新回到周一继续循环,直到读完这本书为止。题目大概意思是这个人每星期每天会读若干叶书或者不读,但是每周最少都会读一页,算出读完这本书的那一天是周几。

2024-03-01 10:20:24 345

原创 Payment Without Change

如果n * (a < (s / n)?a : (s / n)) + b >= s,也就是找到小于等于s的n面值的硬币的最大数量,前提是不超过a。题目的大致意思就是手中的硬币数拿出若干枚正好等于s,分三种情况。.如果n > s && b < s,输出no。.如果b >= s,输出yes。

2024-02-29 23:55:57 421

原创 String LCM

先算出两个字符串的最小公倍数,再分别除以字符串长度,构造出两个新的字符串,就是最小公倍数除以老字符串长度个老字符串相加,打个比方,a字符串长度为4,b字符串长度为6,最小公倍数就是12,那么新字符串a就是12 / 4个老的字符串a相加,b同理,如果两个新的字符串相等,九叔出一个新的字符串,否则输出-1。

2024-02-28 16:09:37 392

原创 Jzzhu and Children

创建两个数组,一个代表当前糖果数量,另一个代表所需要的糖果数量,如果当前数量大于等于所需要的糖果数量,那么跳过本次循环,否则加上m颗糖果数量,人数减一,当人数只剩一个且糖果数量小于所需的糖果数量,那么输出序号结束循环,注意每次遍历的索引加一对n取余,起到一直循环的作业。

2024-02-22 18:50:09 361

原创 Recovering a Small String-Codeforces

第一个字母a,最后一个字母z。其他根据大小算出剩下的字母。解题思路:分三种情况。

2024-02-16 12:44:43 419

原创 Dragons

用结构体排序就好,从最小的开始比较,大于就加上奖励,小于输出NO。

2024-01-30 23:09:58 390

原创 1.28寒假集训

除了后三项直接输出就好,注意不要用cin输入字符串,不读空格。移项就好v' = mv / (M - m)奇数就中间一棵树,偶数中间两棵树。

2024-01-28 22:02:18 654

原创 1.26寒假集训

这题只要相邻两个数最大公约数不为1,那么你怎么操作都不能把两数最大公约数变为1,所以直接输出-1,循环结束相邻两数公约数都为1的话,输出0;在n比x小之前都除2,直到小于等于x时,结束循环,输出sum+1,因为还要进行一次减的操作。将给定的字符串放在一个数组中,判断输入的字符串是否在数组中就行。找规律可得,偶数输出n - 1,奇数输出n - 2。只有一行一列的时候输出1,多列就输出2。有多行多列的时候,输出4。

2024-01-26 09:44:02 266

原创 1.25寒假集训

多选的话,如果s字符串有f没有的字符,输出0,否则输出10,不会出现得五分的情况,因为小灰灰会填没有选的答案。输出m和m个1就好,最大烦躁值为2,1个m的烦躁值为m。如果存在比第一个数小的奇数,输出1,直接交换一次就好。注意如果当前分数超过了y也要输出No,之前一直卡这里。对数组排序,输出第k - 1个索引的数就好。如果单选,字符串相等就输出10,不相等为0。如果第一个数是奇数直接输出0。

2024-01-25 09:46:23 499

原创 1.24寒假集训

化解序列T为2 * i - 1,再带入求和公式化简得前n项和n * n,依次取模再整体取模。否则判断arr[i] / 1024的奇偶性,如果为偶数,输出arr[i] % 1024。如果arr[i] >= -1024 && arr[i]

2024-01-24 09:32:24 510

原创 1.23寒假集训

如果当前总量加下一个物品大于v,说明装不下下一个物品,次数加一。就是判断2 * 2矩阵元素相等就行,边界为3,避免超出边界。根据圆柱高度判断能装几个球,超过圆柱高度的球不算。最小快乐酸度和甜度都为最小,最大时两者都为最大。大于x输出0,小于输出x减去这个数。如果当前总量大于等于v,次数加一。如果最后一个物品,次数加一。

2024-01-23 10:30:28 518

原创 1.22寒假集训

数组第一位是0,所以只要判断(i + 1) >= 2 && (i + 1) <= n - 1 && arr[i] < arr[i - 1] && arr[i] < arr[i + 1]即可。判断大的那个数就行,依次往上乘,直到可以被b整除。排序然后输出最后一位减第一位。如果相邻字母相等,长度就加一。找规律即可,没啥说的。

2024-01-22 09:24:55 926

原创 1.21寒假集训

被这题搞到心态了,没有理解题目意思,只要判断字符串里是否只有“Baidu”这五个字符。以字符串的形式输入,只要判断两部分的最后一个数是偶数还是奇数就行。判断改变第一个,后面字符根据前一个字符判断是否改变。判断改变第二个,同上,找到最小改变值。按照题目意思模拟就好,没啥说的。奇数行正着输出,偶数行倒着输出。

2024-01-21 22:32:14 557

原创 Divisibility Problem-codefordes

如果 a 能被 b整除,就不需要进行改变,直接输出0,否则输出((a / b) + 1) * b - a,找到最小的能被b整除的数。

2024-01-20 21:51:21 514

原创 Presents-codeforces

这题挺有意思,大致意思是,每个人都会互相送礼物,可能送给自己,可能送给别人,第i个数表示第i个人要把礼物送给第i个数的人比如1 3 2,第一个人把礼物送给了自己,第二个人把礼物送给了第三个人,第三个人把礼物送给了第二个人,可以创建两个数组,一个表示送礼物,一个表示收礼物,可以将送礼物数组的值当作收礼物的索引,送礼物的索引当作收礼物的值。

2024-01-19 00:09:33 560

原创 1.18寒假集训

将六个元音字母按大小顺序存放在一个数组里,遍历字符串,当某个字符不是元音字母时,倒着遍历元音数组,找到小于这个字符的元音字母,就将这个元音字母赋给当前字符,结束循环,判断下一个字符,注意一个坑,题目要求多组输入,换行输出,我在这里吃了亏。这题看似很复杂,其实很简单,找规律不难发现就是输出n + 1。只要一条对角线上的数相同就输出“YES”,否则“NO”第三种:得分超过10,取模等于0,一个0。第二种:得分小于10,一个0。额,小学加减法问题,不多说了。第一种:没得分,两个0。

2024-01-18 23:09:09 769

原创 Queue at the School-codeforces

大概意思就是一个队伍里有男生女生,男生会不好意思排在女生前而跟后面的女生换位置,一个时间段里换过的男女生就不能再换了,下个时间段再继续判断是否换位置,可以用两个相同字符串,一个字符串拿来判断是否换位置,另一个拿来交换男女生位置,一个时间段后把交换的字符串赋给判断的字符串用来进行下一个时间段的判断。

2024-01-17 21:51:24 366

原创 1.17寒假集训

首先判断n是否是偶数,如果是偶数就不需要删除数字,如果不是,那就依次删除最后一位来判断当前删除后的数字是否是偶数,直到判断到0为止,0也是偶数,因为它是2的倍数。大于y崇拜值就加3,那么就把大于y的所有题目全放在前面来讲,也就是最大崇拜值等于难度大于y的题目的数量×3,如果都小于x,崇拜值最大就是0。题目说平飞可以不算,那么就去掉平飞的山峰,只要判断三个山峰按照低-高-低就算作翻越一次。计算半径为a + b的面积,PI取到15位,不然精度不够。判断x+y和x+z哪个最小就行。

2024-01-17 12:32:16 323

原创 Domino piling-codeforces

题目意思其实就是想知道n*m的矩形可以放多少个大小为1 * 2的多米诺骨牌,直接n *m / 2就好。

2024-01-16 23:20:46 332

原创 1.16寒假集训

这题只要判断m - 1天就行,因为最后一天只到中午,判断每天的树的高度,要是大于k,高度就剪成b,否则就加a,最后一一输出每棵树的高度就行,数量级很小,随便暴力,我宣布,暴力算法是最好的算法。我的解法很笨,就是暴力遍历,先判断n + m不是质数,再判断m是质数,但是在八哥的点通下,发现了O(1)的时间复杂度,得到一个结论。题意就是判断x能否被2,3,5,7其中的一个或多个数整除,可以就输出YES,结束程序,否则输出NO。题目的意思是小辰实力大于集训队员的实力,成就感就加上该集训队员的实力值。

2024-01-16 13:18:31 375

原创 1.15寒假集训

题目意思就是循环n次,ans每次都加上cnt,然后cnt + 2,循环结束时输出ans,时间复杂度O(n),如果加上cnt的那里用的是题目中的循环来加也能AC,只不过时间复杂度要高一点,O(n * cnt)。题目意思只要输出一样的就好,长途会骗你出什么,比如告诉你出石头,你就会出布来取得胜利,他就会出剪刀反制你,所以你只要出石头就能获得胜利。题目意思就是找大于等于n的最小3的倍数,当n为3的倍数时,最小就为n,否则输出3 * (n / 3 + 1)。依次乘2,当1的个数大于等于n就结束循环,输出次数\。

2024-01-15 12:41:54 399

原创 1.14寒假集训

依次表示切割次数和小矩形数量,因为切割次数最多为100,所以可以设置一个数组来存放1-100切割次数分别对应的小矩形数量。就单纯的解方程问题,设小竹的年龄是y,那么就有x = a * y + b,得到 y = (x - b) / a。按照题目意思模拟即可,只要不满足条件就输出“No”然后结束循环,否则最后输出“Yes”。如果n为偶数,输出n / 2,否则在输出n / 2 + 1。我没有什么好的想法,我找到个规律,根据题意,直接输出c / a即可。

2024-01-14 23:35:09 373

原创 1.13寒假集训

遍历每一个元素的2 * 2 矩阵就好,注意遍历到n - 1行m - 1列就行,如果遍历到n行或者m列,那么就没有2 * 2矩阵了,在判断每个2 * 2矩阵里y o u 三个字母数量最小值是否为1就行。我第一开始以为只要满足两个red以上的字母数量就行,但是过不了,后面才发现是red字符串,直接三个三个判断就行。定义初始长度为1,找到稳定数组就加一,不是就重新赋值为1,将每一次的稳定子数组长度与Max比较找最大值。看示例不难发现只要倒着输出数组就好,我最开始还想模拟题意进行两次翻转。

2024-01-13 23:27:56 643

空空如也

空空如也

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

TA关注的人

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