![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
题组
文章平均质量分 63
用于记录自己的错题
3分人生
这个作者很懒,什么都没留下…
展开
-
CF936 div2 B. Maximum Sum
在一次操作中,您选择数组a的任意连续子数组(可能为空),并将此子数组的总和插入数组中的任意位置。需要注意的是,初始的数可能全是负数,而且负数和的绝对值可能大于1e9+7,需要考虑对负数取余数的情况。每个测试用例的第一行包含两个整数n和k(1≤n,k≤2⋅10^5) — 数组a的长度和操作次数。对于每个测试用例,输出一个整数 — 在k次操作后可以获得的数组的最大总和,模10^9+7。提醒:数字x模p的余数是最小的非负y,使得存在整数q使得x=p⋅q+y。您的任务是找到在k次操作后数组的最大可能总和。原创 2024-03-25 00:12:27 · 636 阅读 · 0 评论 -
CF935
C. Left and Right Houses题目描述在Letovo村庄里有n栋房子。村民们决定修建一条大街,将村庄分为左右两侧。每位居民都希望住在街道的左侧或右侧,这可以用序列a1,a2,…,an来描述,其中如果第j栋房子的居民想住在街道的左侧,则aj=0;否则,aj=1。道路将穿过两栋房子。它左侧的房子将被宣布为左侧,右侧的房子将被宣布为右侧。更正式地,让道路穿过第i和第i+1栋房子。然后在位置1到i之间的房子将位于街道的左侧,在位置i+1到n之间的房子将位于右侧。道路也可能在第一栋房子之原创 2024-03-21 20:56:52 · 828 阅读 · 0 评论 -
Pots
行分别描述一个操作。如果有多个最短长度的操作序列,输出其中任意一个。如果无法达到期望结果,输出文件的第一行必须包含单词 ‘本题有3总操作,但操作的对象不同,一共有6种不同操作,题目求最短显然用bfs搜索更好一点。我们在找到终点还要回溯其走过的点,这里可以在结构体里面增加一个变量记录是由哪个点来的。编写一个程序,找出能使其中一个罐子中恰好有。这些数都在 1 到 100 的范围内,且。输出的第一行必须包含操作序列的长度。升水的最短操作序列。原创 2024-03-19 22:27:22 · 261 阅读 · 0 评论 -
洛谷 P1439 最长公共子序列
最开始基本解法是二维数组O(n^2)解法显然过不了,这里需要把题目转换成求递增子序列,递增子序列需要一个贪心的优化。,n 的两个排列 P1 和 P2 ,求它们的最长公共子序列。接下来两行,每行为 n 个数,为自然数 1,2,…一个数,即最长公共子序列的长度。第一行是一个数 n。原创 2024-03-03 22:27:14 · 196 阅读 · 0 评论 -
洛谷 P1091 合唱队形
本题考察的是动态规划中递增子序列问题,dp[ i ]表示以下标为i结尾的递增子序列的元素数量,递推公式是dp[ i ]=max(dp[ i ], dp[ j ]+1);第二行有 n 个整数,用空格分隔,第 i 个整数 ti(130≤ti≤230)是第 i 位同学的身高(厘米)。你的任务是,已知所有 n 位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。n 位同学站成一排,音乐老师要请其中的 n−k 位同学出列,使得剩下的 k 位同学排成合唱队形。原创 2024-02-29 22:40:22 · 266 阅读 · 0 评论 -
洛谷 P1481 魔族密码
如果在一个由一个词或多个词组成的表中,除了最后一个以外,每个单词都被其后的一个单词所包含,即前一个单词是后一个单词的前缀,则称词表为一个词链。我们现在要解决的是魔族的密码问题(自我陶醉:搞不好魔族里面还会有人用密码给我和菜虫写情书咧,哦活活,当然是给我的比较多拉*^_^*)。这些文件的格式是,第一行为单词表中的单词数 N(1≤N≤2000),下面每一行有一个单词,按字典顺序排列,中间也没有重复的单词。现在你要做的就是在一个给定的单词表中取出一些词,组成最长的词链,就是包含单词数最多的词链。原创 2024-02-23 20:28:27 · 408 阅读 · 0 评论 -
CF1200E Compress Words
合并两个单词的时候,要找到最大的 i(i≥0),满足第一个单词的长度为 i 的后缀和第二个单词长度为 i 的前缀相等,然后把第二个单词第 i 位以后的部分接到第一个单词后面。现在我们想求字串 s3s4的hash值,不难得出为s3∗Base+s4,并且从上面观察,如果看hash[4]−hash[2]*Base^2,至此,通过对上例的归纳,可以得出如下的公式。本题写了3~4个小时,看了题解,虽说花费的时间多,但更进一步了解了进制哈希,双哈希和O(1)方式求子串哈希的方法,还是有收获的。思路和坑点讲完,上代码。原创 2024-02-22 22:15:00 · 1562 阅读 · 0 评论 -
洛谷 P3879 阅读理解
本题可以采用链地址法解决哈希冲突,采用二维结构体储存哈希值,结构体竖直方向为N篇阅读理解,水平方向为每个单词字符串转换数字映射到的位置采用链表储存,对于m个单词在n篇阅读理解里面查找就是通过下标查找,判断能否找到。对于每个生词输出一行,统计其在哪几篇短文中出现过,并按从小到大输出短文的序号,序号不应有重复,序号之间用一个空格隔开(注意第一个序号的前面和最后一个序号的后面不应有空格)。每行的开头是一个整数 L ,表示这篇短文由 L 个单词组成。对于 100% 的数据,1≤M≤10^4,1≤N≤10^3。原创 2024-02-21 22:10:11 · 349 阅读 · 0 评论 -
洛谷 P8630 [蓝桥杯 2015 国 B] 密文搜索
这题可以使用字符串哈希,因为不用考虑字符顺序,可以先统计一个字符串中每个字符出现的次数,然后使用使用进制哈希将字符串转换为数字表示,具体操作看代码;输入第一行:一个字符串 s,全部由小写字母组成,长度小于 1024×1024。紧接着一行是一个整数 n, 表示以下有 n 行密码,1≤n≤1000。第一个密码匹配了 3 次,第二个密码匹配了 1 次,一共 4 次。一个整数,表示每行密码的所有排列在 s 中匹配次数的总和。紧接着是 n 行字符串,都是小写字母组成,长度都为 8。蓝桥杯 2015 年第六届国赛。原创 2024-02-18 22:26:37 · 487 阅读 · 0 评论 -
洛谷 P2580 于是他错误的点名开始了
这题可以使用字符串进制哈希来解决,每一个字符串可以转换为一个数字来表示,本题中首先将n个字符串转换为数字并存在一个数组里面,然后输入m个字符串转换为数字如果能够在前n个字符串转换的数组里面找到且是第一次输出OK,如果能找到但不是第一次则输出。接下来 n 行,每行一个字符串表示其名字(互不相同,且只含小写字母,长度不超过 50)。接下来 m 行,每行一个字符串表示教练报的名字(只含小写字母,且长度不超过 50)。第 n+2 行一个整数 m,表示教练报的名字个数。,如果该名字正确但不是第一次出现,输出。原创 2024-02-16 21:30:19 · 342 阅读 · 0 评论 -
洛谷 P1550 Watering Hole G
他决定将水引入到他的 n 个农场。连接 i 号田与 j 号田需要 Pi,j(Pj,i=Pi,j)元。最小生成树问题,这题不一样的就是可能存在连通两个田的成本大于挖井的成本,只需要在邻接矩阵输入的时候取两者较小值然后就不会存在连通两个田的成本大于挖井的成本的情况,这样就只需要挖一个井,操作起来相对简单。接下来 n 行,每行 n 个整数,第 i 行的第 j 个数表示连接 i 号田和 j 号田需要的费用 Pi,j。对于 100% 的数据,1≤n≤300,1≤Wi≤10^5,0≤Pi,j≤10^5。原创 2024-02-04 21:13:01 · 255 阅读 · 0 评论 -
普里姆(prim)和克鲁斯卡尔(Kruskal)
坑点:建立结点数量n的最小生成树需要n-1,n个结点中建立k个最小生成树需要n-k条边,n个结点的图中两种情况无法建成k个最小生成树 1.m<n-k,2.n<k(1.所有边的数量全使用都无法构成k个最小生成树,2.结点的总数比要建造的最小生成树的数量小)如果你买了第 I 样东西,再买第 J 样,那么就可以只花 KI,J 元,更巧的是,KI,J 竟然等于 KJ,I。对于 100% 的数据,1≤N≤10^3,1≤M≤10^4,1≤K≤10,1≤X,Y≤N,0≤L<10^4。原创 2024-02-02 20:14:10 · 770 阅读 · 0 评论 -
23寒假预备役第二次测试
最开始我的思路是判断x能否直接整除n,如果能平衡就是x/n,如果不能就暴力凑,例如10不能整除3,最开始拆成p=3 3,q=4,前面两个3分别减一,减少的凑到4变成2,2,6,直到q%p==0,然而数据较大,一旦x为素数最差情况就是O(t*x),显然不行。最开始我思路是bfs列举4个方向,每个方向一直走到底,第一次到这个点将这个点入队,遇到冰块,sum++,显然这样会出现很多重复的,后来想到可以用一个二维数组标记到的每一个冰块为1,这样就可以起到去重的作用,最后再统计总和。在这个问题中,我们的国王很笨。原创 2024-01-29 19:50:57 · 1081 阅读 · 0 评论 -
寒假预备役第一次测试
首先我们知道鲍勃希望操作后的数组最小,所以说鲍勃肯定优先将最大的数操作变成相反数且鲍勃能操作几个数就全都操作,爱丽丝可以去除数组中的数,然而具体去除几个数不知道,但知道的是要想鲍勃操作后数组最大,去除的肯定优先去除最大的数,具体去除几个,直接暴力比较一下取最大值,这里可以前缀和一下,就是爱丽丝去除某个元素的所有和,方便计算。在第三个示例中,瓦西亚可以,例如,创建数组(5,4,3,2,1)。然后总差异将为D=|1−5|+|2−4|+|3−3|+|4−2|+|5−1|=4+2+0+2+4=12。原创 2024-01-26 13:03:05 · 602 阅读 · 0 评论 -
洛谷 P1032 字串变换
已知有两个字串A,B及一组字串变换的规则(至多6个规则),形如:A1→B1。A2→B2。规则的含义为:在A中的子串A1可以变换为B1,A2可以变换为 B2⋯。例如:A=abcd,B=xyz,原创 2024-01-25 14:23:21 · 522 阅读 · 0 评论 -
洛谷 P1364 医院设置
其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为11。如上图中,若医院建在11处,则距离和=4+12+2×20+2×40=136;若医院建在3处,则距离和=4×2+13+20+40=81。原创 2024-01-23 15:19:10 · 677 阅读 · 1 评论 -
洛谷 P1126 机器人搬重物
机器人移动学会(RMI)现在正尝试用机器人搬运物品。机器人的形状是一个直径1.6米的球。在试验阶段,机器人被用于在一个储藏室中搬运货物。储藏室是一个N×M的网格,有些格子为不可移动的障碍。机器人的中心总是在格点上,当然,机器人必须在最短的时间内把物品搬运到指定的地方。机器人接受的指令有:原创 2024-01-22 16:09:33 · 1183 阅读 · 0 评论 -
洛谷 P3375 【模板】KMP
给出两个字符串s1和s2,若s1的区间[l,r]子串与s2完全相同,则称s2在s1中出现了,其出现位置为l。现在请你求出s2在s1中所有出现的位置。定义一个字符串s的 border 为s的一个非s本身的子串t,满足t既是s的前缀,又是s的后缀。对于s2,你还需要求出对于其每个前缀s′的最长 bordert′的长度。原创 2024-01-22 02:00:00 · 456 阅读 · 0 评论 -
洛谷P2895 Meteor Shower S(流星雨)
根据预报,一共有 M 颗流星 (1≤M≤50,000) 会坠落在农场上,其中第 i 颗流星会在时刻 Ti(0≤Ti≤1000)砸在坐标为(Xi,Yi)(0≤Xi≤300,0≤Yi≤300) 的格子里。流星的力量会将它所在的格子,以及周围 4 个相邻的格子都化为焦土,当然贝茜也无法再在这些格子上行走。看题目很容易想到用bfs,然而与其他题目不同的是,这里某些点不是一来就不可以走的,而是要根据流星落下的时间来判断,在流星落下之前可以走,落下之后就不能走了。3.这个点是否有流星落下(用来寻找安全点)原创 2023-12-29 11:06:50 · 559 阅读 · 0 评论 -
三角形加强版
想必学弟学妹们都被小明的三角形坑的不惨吧, 为了锻炼下学弟学妹我决定再补一刀。让你们来选三角形,有n条边让你选3条边凑成一个三角形,问有多少种可能比如: 1 2 3 4 这4条边,就有 2 3 4 .这一种可能 。原创 2023-12-24 15:13:44 · 572 阅读 · 0 评论 -
羊村快递站(模拟)
3、当要取的快递位于惩罚通道口时,会直接取走自己的快递,随后整个通道就会向前移动让下一件快递位于通道口。4、当要取的快递不位于惩罚通道口时,沸羊羊会将快递依次取出并放入快递车上,直到取到取件羊的快递,放入快递车的快递将会受到终极惩罚:被送回发货地,沸羊羊会将这些被打回的快递记录下来,当这些快递的取件羊来取件的时候,将会被告知取件失败。5、每件进入惩罚通道的快递都会被记录下来,所以每个取件羊来到的快递站的时候,沸羊羊都会先告诉它要取的快递在哪个通道里。原创 2023-12-19 09:03:00 · 443 阅读 · 1 评论 -
高精度运算(加,乘,阶乘)
高精度所谓数据比较大,在计算中我们会遇到10的几十次方甚至几百次方,一般的数据类型是储存不下,所以需要特殊处理。1.当输入的数据比较大时,可以采用字符串方式输入,然后再把每一位数字存在数组里面,如下2.对高精度进型加法时就是模仿进位过程,乘法也是如此。而高精度的计算就是模拟这个计算过程。原创 2023-12-17 11:12:02 · 644 阅读 · 2 评论 -
憨憨发牌员
对于排序花色C,D,S,H,中C,D,S是从小到大排序的而H比较特殊,可以在输入H后将它改成比'S'大的字符,在排序完后再改回来就行,同理大小排序也相同在2 < 3 < 4 < 5 < 6 < 7 < 8 < 9 < T < J < Q < K < A .中2到9是从小到大的,而在T到A中除了J以外是从大到小的,此时就可以在输入J后将J改变一个值满足从T到A时从大到小的顺序,在排序完后再改回来。第二行表示一副牌,其中第一个字母表示(梅花,方块,黑桃,红桃),第二个字符表示点数,依此类推。原创 2023-12-07 16:55:29 · 544 阅读 · 0 评论 -
二分答案应用
二分答案 与二分查找类似,二分查找有一个前提就是数列要求是有序的,二分答案则是要求 满足条件的答案是单调有序的,它的基本思想是在答案可能的范围 ([L,R]) 内二分查找答案,不断检查当前答案是否满足题目的要求,根据检查结果 更新查找的区间,最终取得最符合题目要求的答案进行输出。原创 2023-12-05 13:23:29 · 547 阅读 · 1 评论 -
深搜和广搜的应用——帮元歌找傀儡
深度搜索和广度搜索都能解决这个问题,深搜与广搜相比深搜占用的内存相对较小,但在深度很大的时候效率不高这也很容易理解,广搜需要数组来列队占用大量内存,而深搜需要多次遍历且标识后还要取消,所以计算较慢。原创 2023-11-16 10:54:39 · 136 阅读 · 3 评论 -
密码发生器——题解
第三步. 再把每个数字“缩位”处理:就是把每个位的数字相加,得出的数字如果不是一位数字,就再缩位,直到变成一位数字为止。我们可以使用任何好记的拼音串(比如名字,王喜明,就写:wangximing)作为输入,程序输出6位数字。解这个题大致可以分为两步,第一步先判断一行字符串有几个6的倍数,用于循环求折叠后每一竖字符的和,第二步将字符转化为各个位数的和直到为一位数。输入格式为:第一行是一个整数n(<100),表示下边有多少输入行,接下来是n行字符串,就是等待变换的字符串。输出格式为:n行变换后的6位密码。原创 2023-11-14 08:54:13 · 46 阅读 · 1 评论 -
字符串的应用————竞选主席
因为是对字符串之间进行比较,首先比较字符串的长度,若字符串中的字符多票数自然也就多,若长度相等,则使用strcmp函数进行字符串比较,因为字符1,2,3,4,5,6,7,8,9对应的asc码值也是依此增大的,所以使用strcmp函数进行比较,因为使用了strlen,strcmp,strcpy函数所以在开头加上#include<string.h>原创 2023-11-07 09:11:32 · 87 阅读 · 0 评论