寒假练习
skyang.
这个作者很懒,什么都没留下…
展开
-
算法做题记录
求f[a][b][c][d][e]时,可以假设将最后一个人放到第12345排,放到第一排时,需要保证a至少为1,且a-1>=b。如果X与Y是同类,那么将X挂到Y上,并且更新PX离PY的距离为 d[y] - d[x] ,即表示X与Y为同类。若果X可以吃Y,那么将X挂到Y上,并且更新PX离PY的距离为d[y] - d[x] + 1,表示X可以吃Y。思路:先计算数字A,B在n级城市的哪一块,再计算在n-1级城市的x,y坐标,递归综合得到A、B的坐标。,N,其中第 i 号战舰处于第 i 列。原创 2023-09-05 21:08:55 · 518 阅读 · 0 评论 -
P1352 没有上司的舞会
f [ i ] 代表不选 i结点 最大的快乐指数。g [ i ] 代表选 i 结点 最大快乐指数。思路:用 f 数组 和 g 数组 维护。原创 2023-02-04 22:38:02 · 182 阅读 · 0 评论 -
简单汉诺塔
将n个盘子从1塔移动到3塔,只需先将n-1个盘子移动到2塔,再将最大的盘子移动到3塔,再将n-1个盘子从2塔移动到3塔,即可完成。原创 2023-01-27 23:10:12 · 321 阅读 · 0 评论 -
Acwing 6. 多重背包问题 III
当处理一个物品时,f[ j ] 只能从f[ j - v] , f[j - 2v ] ...... f[j - kv ] 转移得到(k原创 2023-01-25 22:17:40 · 156 阅读 · 0 评论 -
Acwing 154. 滑动窗口
2.若队尾元素大于新元素,则将队尾元素出队。因为在他们离开区间前,新元素一定还在区间内,所以最小值一定不会是他们这些比新元素大的队尾元素,所以将他们出队。思路:如求区间的最小值时,只需维护一个单调递减的队列。此时,区间的最小元素即为当前队列的队首元素。1.如果队首滑出区间,则出队。原创 2023-01-25 21:04:28 · 133 阅读 · 0 评论 -
洛谷 225153 数字组合
标签:背包问题注意点:将dp[0]初始化为1。原创 2023-01-16 23:01:28 · 177 阅读 · 0 评论 -
Acwing 1239. 乘积最大
若k为奇数,则看序列中有无非负数,若有,则答案一定为正,先选上最大非负整数,再同上一对一对选数据。若无非负数,则结果为负,选绝对值最小的k个数的乘积。2.当k原创 2023-01-17 09:03:52 · 97 阅读 · 0 评论 -
贪心算法专题
思路:逢涨就买。原创 2023-01-16 18:44:58 · 1355 阅读 · 1 评论 -
树状数组与线段树模板
注意点:query函数中要将res初始化为负无穷,因为未保证序列数都为正数。因为星星x值可能为0,而树状数组是从下标为1开始的。注意点:将x的值都加1,不影响星星的等级。原创 2023-01-14 20:33:36 · 125 阅读 · 0 评论 -
洛谷 P1049 [NOIP2001 普及组] 装箱问题
得到转移方程:dp[j]=max(dp[j],dp[j-a]+a)特点:该题可以将 物品的体积和价值 都看成物品的体积。dp[i]表示体积为i的箱子最多可以放多少体积的物品。原创 2023-01-12 22:25:00 · 452 阅读 · 0 评论 -
洛谷 U266184 宠物小精灵之收服
精灵球个数 与 对皮卡丘的伤害 都可以看成背包问题中的体积,所以将dp数组升级为二维。注意点:洛谷测评所用数据与题目描述不一致,将dp数组开成1005×5005才通过。dp[i][j]表示 i个精灵球 j滴血皮卡丘 最多可以收服多少小精灵。标签:dp、背包问题。原创 2023-01-12 21:57:28 · 456 阅读 · 0 评论 -
Acwing 4261. 孤独的照片
用cnt_H和cnt_G计数,当碰到H时,记录此时前面G的数量,并将G的数量清零,H的数量加加。1.i-1为G,i后面有R(R>=2)个H,该情况有R-1张孤独的照片。2.i+1为G,i前面有L(L>=2)个H,该情况L-1张孤独的照片。3.i前面有L个H,i后面有R个H,该情况有L*R张孤独的照片。所以,现在要求位置i前面有多少连续的H,后面有多少连续的H。原创 2023-01-12 18:38:39 · 426 阅读 · 0 评论 -
数学与简单dp专题
思路:当p、q互质,n、m为非负整数时:最大不能被np+mq表示的数为:(p-1)(q-1)-1。原创 2023-01-12 17:21:14 · 512 阅读 · 0 评论 -
Acwing 1212. 地宫取宝
思路:用dp[i][j][k][p] 记录通过(i,j)点以拿到k个宝物,且宝物最大价值为p的方案数。初始化取/不取(0,0)点宝物的方法数为1。原创 2023-01-12 17:04:18 · 602 阅读 · 0 评论 -
Acwing 1214. 波动数列
【代码】Acwing 1214. 波动数列。原创 2023-01-12 16:55:45 · 514 阅读 · 0 评论 -
Acwing 1221.四平方和
思路:先求出两数的平方和,记录这两个数和他的平方和。再遍历另外两个数,这两个数的平方和为i*i+j*j,那么开始两个数的平方和即为n-i*i-j*j,就在长度为n*n的序列中找出一个sum值为n-i*i-j*j的值,时间复杂度为。(也就是n方logn)原创 2023-01-11 20:30:03 · 295 阅读 · 0 评论 -
二分和前缀和专题
注意点:判断一个e是否可以跳到终点时,若e较大,大于每一栋楼的高度,那么之后e会呈指数级增长,会溢出变为负值,因此要增设跳出条件,若e大于等于最高楼高度,那么break;注意点:一个点上可能有多个炸弹。原创 2023-01-11 19:36:05 · 263 阅读 · 0 评论 -
Acwing 1230.K倍区间
每增加一个ai,增加的k倍区间个数就为:在。用数组cnt记录s_i模k的个数。若S_i与S_j模k同余,那么。原创 2023-01-11 16:56:14 · 307 阅读 · 0 评论 -
背包问题(动态规划)
特点:物品只有一件。原创 2023-01-10 22:14:29 · 244 阅读 · 0 评论 -
Acwing 递归与递推类型题
标签:递归思路:先枚举出1~9的全排列,可将全排列分为三段,分别作为a,b,c的取值。判断该a,b,c的值是否满足条件。注意点:a,b,c都不能为0。原创 2023-01-10 18:11:23 · 268 阅读 · 0 评论 -
黑白迭代类型题(递归)
标签:递归思路:穷举翻硬币的每种情况,若符合条件,更新翻的次数;否则,不变。注意:剪枝,若在操作完前面的区域,以后对该区域不再操作了,但该区域不符合条件,可以直接return减少后续操作。原创 2023-01-10 18:02:55 · 1333 阅读 · 1 评论 -
Acwing 94. 递归实现排列型枚举
思路:选择第i位的数字,每次选择一个未选过的最小数字,然后递归选择第i+1位,当选择完n位时输出。原创 2023-01-10 11:05:36 · 243 阅读 · 0 评论 -
Acwing 92. 递归实现指数型枚举
思路:共有n个数,枚举是否选择第i个数,如果选择,则输出时将他输出;原创 2023-01-10 10:56:26 · 233 阅读 · 0 评论 -
洛谷 P2782 友好城市
思路:对两组河东河西的坐标,如果x1>x2,但y1原创 2023-01-09 16:40:46 · 309 阅读 · 0 评论 -
最大上升子序列
贪心+二分时间复杂度:O(n*logn)dp时间复杂度:O(n*n)原创 2023-01-09 15:38:22 · 155 阅读 · 0 评论 -
洛谷T285024 最大上升子序列和
【代码】洛谷T285024 最大上升子序列和。原创 2023-01-08 20:44:30 · 251 阅读 · 0 评论 -
洛谷 U247946 登山
思路:正着倒着求最大上升子序列,求f[i]+g[i]-1的最大值。原创 2023-01-08 20:04:21 · 158 阅读 · 0 评论 -
洛谷U234151 怪盗基德的滑翔翼
思路:正着求一个最大上升子序列,倒着求一个最大上升子序列,输出其中的最大值。注意点:每个样例循环中,要初始化ans (不初始化真的裂开)原创 2023-01-08 19:51:50 · 310 阅读 · 0 评论 -
Acwing 275. 传纸条
增加判断点,若x1==y1,则f[k][x1][x2]为负无穷(无法通过)注意:若m=n时,会使答案输出为0,因此要增加一个判断条件:k!原创 2023-01-08 16:45:21 · 119 阅读 · 0 评论 -
洛谷P1004 [NOIP2000 提高组] 方格取数
思路:用f[k][i1][i2]记录x+y=k时两条路线横坐标分别为i1、i2时取到数字和的最大值。如果x1=x2,那么这一步两条路线经过了同一点,只取一个数w[x1][y1];否则,两个数字都取w[x1][y1]+w[x2][y2]。1.线路一向下走一步,线路二向下走一步;2.线路一向下走一步,线路二向右走一步;3.线路一向右走一步,线路二向下走一步;4.线路一向右走一步,线路二向右走一步;到x1,x2共有四种路线。原创 2023-01-08 15:56:13 · 177 阅读 · 0 评论 -
Acwing1015. 摘花生
【代码】Acwing1015. 摘花生。原创 2023-01-08 15:15:01 · 155 阅读 · 0 评论 -
2022年第四届全国高校计算机能力挑战赛c++组决赛
小丽好朋友的生日快到了,她打算做一些折纸放在幸运罐中作为生日礼物。小丽计划总共 需要a颗星星以及b只纸鹤。现在市场上卖的到的星星纸(折小星星的专用纸)一张可以折c颗小星星,一张纸鹤纸(折纸鹤的专用纸)可以折d只小纸鹤。她准备一共买k张折纸,要优先满足星星纸的需求,剩余的再去买纸鹤纸,请你帮忙计算一下,买来的k张折纸能否满足小丽的折纸需求,能满足的话分别给出需要购买的星星纸和纸鹤纸的数量,不能的话则输出-1。若有满足条件的折纸方案,星星优先折叠,剩下的折纸都属于纸鹤。原创 2023-01-08 10:34:45 · 11713 阅读 · 8 评论 -
Acwing4793. 危险程度(第85场周赛)
并查集的最终结果是,在一个连通分量上的结点f[x]是同一个值,这些结点除了放第一个的时候不会加倍,放剩余结点时都会加倍,即加倍次数为该连通分量的节点数-1,也就是只要不是放该连通分量的根结点,都会加倍。=x 时,ans*=2;思路:大概就是图论的生成树,要把每个结点访问一遍,如果该结点所在的连通分量已经有访问过得,那么乘二;原创 2023-01-07 21:07:34 · 168 阅读 · 0 评论 -
蓝桥杯 重新排序(Acwing 4655)
重排依据:是重排后的查询区间和最大,可以记录每个位置被查询的次数,将查询次数多的位置放上大的数字,依据此排序。通过前缀和和差分计算 重排前查询的区间和 与 重排后查询的区间和,输出两者之差。关键:如何进行重排!原创 2023-01-05 16:57:38 · 337 阅读 · 1 评论 -
洛谷[JSOI2010]部落划分
聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗。我们把两个部落的距离,定义为部落中距离最近的那两个居住点的距离。对于任意一种部落划分的方法,都能够求出两个部落之间的距离,聪聪希望求出一种部落划分的方法,使靠得最近的两个部落尽可能远离。输出一行一个实数,为最优划分时,最近的两个部落的距离,精确到小数点后两位。不过好消息是,聪聪得到了一份荒岛的地图。,分别代表了野人居住点的数量和部落的数量。原创 2022-12-30 11:30:41 · 140 阅读 · 0 评论 -
洛谷P1991 无线通讯网(最小生成树)
遇到的问题:判断结点是否在树上,该题最终有n颗子树即可,不需要完全合并成一棵树,因此判断一条边是否需要连通不能简单地判断其连通的两个结点是否被访问过。如果 f[u]==f[v] ,则u点和v点已经连通,如果将该条边再连通,将形成回路,所以不能连;任意两个配备了一条卫星电话线路的哨所(两边都有卫星电话)均可以通话,无论他们相距多远。,使得每一对哨所之间至少有一条通话路径(直接的或者间接的)。,这是受收发器的功率限制。,表示无线电收发器的最小传输距离,精确到小数点后两位。表示可安装的卫星电话的哨所数,原创 2022-12-29 21:30:52 · 814 阅读 · 0 评论 -
Acwing每日一题 3400. 统计次数
【代码】Acwing每日一题 3400. 统计次数。原创 2022-12-28 20:42:08 · 178 阅读 · 0 评论 -
Acwing每日一题 4366. 上课睡觉
思路:暴力枚举,枚举每种最终每堆石头的数量和。原创 2022-12-28 20:39:29 · 152 阅读 · 0 评论 -
洛谷P4017 最大食物链计数
注意:在计算a为食物链结尾的食物链条数时,需要确保a的猎物的食物链条数都已计算完毕,所以要用到拓扑排序,用deg_in记录每个动物的入度,只有入度为0时,将他入队,计算食物链数目。Delia 生物考试的时候,数食物链条数的题目全都错了,因为她总是重复数了几条或漏掉了几条。以 某消费者 为 食物链结尾 的食物链条数 = 他所能捕食的猎物为结尾的食物链数 之和。给你一个食物网,你要求出这个食物网中最大食物链的数量。行,每行两个正整数,表示被吃的生物A和吃A的生物B。(这里的“最大食物链”,指的是。原创 2022-12-26 20:17:01 · 149 阅读 · 0 评论 -
洛谷P1616 疯狂的采药
注意:dp数组开大点,别跟price和cost一样。原创 2022-12-24 19:01:16 · 128 阅读 · 0 评论