自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法:动态规划 洛谷 线性状态动态规划 P1439【模板】最长公共子序列

【代码】算法:动态规划 洛谷 线性状态动态规划 P1439【模板】最长公共子序列。

2025-08-02 01:33:49 465

原创 算法:spfa 洛谷 最短路 P3385 【模板】负环

思路:这题是看有没有负环的板子题,用spfa直接看有没有哪个点优化了n次以上,有的话就说明有负环。

2025-07-25 02:02:40 473

原创 算法:线段树+差分 洛谷 线段树 P1438 无聊的数列

p)的前缀和,然后因为加法操作变成了加一个等差数列,也就是(l,r)范围,i+1位置比i位置多加一个d,那我们换成差分思想,是不是(l+1,r)每个位置加个d,然后r+1位置加(r-l)*(-d),这里加了多少d就要减多少d,然后开头l位置单独加k,r+1位置在减k,然后建树时也是差分思想,i位置加a【i】,i+1位置减a【i】思路:因为这次的查询改为了单点查询,所以想到了线段树上差分,这样单点查询就相当于原始线段树上(1。

2025-07-23 23:17:47 193

原创 算法:状压dp 洛谷 状态压缩动态规划 P2622 关灯问题 II

思路:通过观察发现n最大为10,可以用状压把灯的状态用二进制表示,0就是关1就是开,然后用bfs去爆搜,并且用dp数组记忆这个状态有没有来过并且记录其最小步数,如果发现dp[0]为0说明无法达到,输出-1,否则输出答案。

2025-07-22 18:02:06 744

原创 算法:floyd和高精度 洛谷 最短路 P1037 [NOIP 2002 普及组] 产生数

思路:因为某个数变成另一个数是单向的,并且一个数变成另一个数后还可以变,让我联想到图论的内容,一个数变成其他数就相当于这个数与另一个数有单向边,而且边之间的线路可以让一个数可能变成很多数,因为数据量很小,我就想到了floyd,就是我们用floyd做传递闭包,得出一个数可以变成哪些数,然后将每个位看一遍,乘起来就是答案,不过这里有个小坑,答案超过了2的64次方,所以还要高精度算法处理一下。

2025-07-19 02:54:23 594

原创 算法:动态规划 洛谷 P8776 [蓝桥杯 2022 省 A] 最长不下降子序列

我们可以直接让k个数从下标为1开始,滑动到末端,这k个数就不用看它,因为我们把他设置成k个数后面的数,所以答案先加上k,然后我们看预处理每一个数从他开始(包括这个数)后面的最长不下降子序列,把长度放入b数组中,这样我们答案就是k加上b【k+1】,然后我们看k前面的数,k前面的数不是让答案加上前面的最长不下降子序列,因为此时我们有条件限制,因为我们要让前面的数的子序列保证都小于a【k+1】这个数,这个就直接看end数组(end数组你得学前面说的nlogn算法才知道)大于他的数的位置,直接得出答案。

2025-07-17 01:39:33 645

原创 算法:dfs加剪枝加状压dp 洛谷 进阶搜索 P1433 吃奶酪

思路:首先想到的是直接爆搜,但是很明显会爆,在加上剪枝,比如如果当前的距离已经大于之前的最小距离就返回,不过还是会爆,那就加上个状压dp,因为n最大为15个,我们用二进制表示状态,1就是走过的点,0就是没有,最大就是2的15次方,然后二维数组中dp[x][i]中x就是上面我们讲的状态,i就是这个状态下到哪个点了,如果我们这个dp[x][i]之前已经来过了,并且我们当前距离比如之前的dp,那就continue,最后爆搜出答案。

2025-07-14 18:25:33 224

原创 算法:01-Trie字典树 洛谷 字符串 P2922 [USACO08DEC] Secret Message G

思路:将信息按01字典树建图,然后计算经过的数量和终点的数,不过这里我这里是这么算的,就是如果终点加1了,那就不加这个点的经过,这样方便后面计算,然后将暗语放进去检查,遍历过程中加上终点的数量,说明信息是暗语的前缀数量,然后到终点时加上终点经过的数量,说明暗语是信息前缀的数量。

2025-07-12 19:29:08 223

原创 算法:并查集反集 洛谷 常见优化技巧 P1525 [NOIP 2010 提高组] 关押罪犯

思路:首先这题需要引入并查集的扩展,就是反集,如果u和v有矛盾,就连接对方的反集,就是说明双方放在不同的集合,比如,我们可以使并查集扩大为2n大小,u的反集就是u+n,所以就是u连接v+n,v连接u+n,然后这题是取发生仇恨的最大值,然后我们要让这个值尽量小,所以我们可以将仇恨值排序,从大到小,然后依次操作,将他们放到不同集合,直到,他们没办法放到不同集合,就是他们已经相连了,就输出答案。

2025-07-12 18:01:48 267

原创 算法:贡献 洛谷 常见优化技巧 P2671 [NOIP 2015 普及组] 求和

【代码】算法:贡献 洛谷 常见优化技巧 P2671 [NOIP 2015 普及组] 求和。

2025-07-12 02:40:45 226

原创 算法:归并排序分治 洛谷 分治与倍增 P1908 逆序对

思路:这题其实是模板题,用归并排序就可以解决,我们归并排序从大到小,在归并排序之前先计算逆序对数量,因为左边数组有序,右边数组也有序,所以用双指针就可以直接知道两边有多少逆序对。

2025-07-11 15:42:18 187

原创 算法:二分答案和前缀和 洛谷 前缀和、差分与离散化 P1314 [NOIP 2011 提高组] 聪明的质监员

思路:通过观察发现可以用二分答案W,W范围L为重量w最小值,r为重量最大值加1,然后开始二分,check中将大于等于y的物品筛出来,放到c数组中然后求前缀和,然后相乘加起来得出答案y,然后比较y与s大小,如果y大了,那我们就要让y小一点尽量接近s,那w就要大一点,所以l=y否则同样道理。最后比较l、r哪个算出来的y更接近s。

2025-07-11 02:51:50 227

原创 算法:A星 洛谷 进阶搜索 P5507 机关

思路:直接爆搜bfs,估计函数是每个按钮到状态1的步数和。在状态方面,我是将状态变成数字的形式存入队列中,取出来时在变成数组。

2025-07-10 22:41:26 199

原创 算法:中国剩余定理 洛谷 进阶数论 P1495 【模板】中国剩余定理(CRT)/ 曹冲养猪

思路:这个题首先你得学会龟速乘(求a乘b并对c取模),欧几里得(可以求逆元),gcd(其实欧几里得也可以求,不过懒得改代码了),中国剩余定理(不过这题不止用到这个,是一个比较全能的题)有人可能用了快速幂求逆元,但是快速幂条件是a与p互质并且,p是质数,不过欧几里得只需要a与p互质,这题不能用快速幂求逆元。

2025-07-10 18:28:30 218

原创 算法:有依赖的背包 洛谷 动态规划的引入 P1064 [NOIP 2006 提高组] 金明的预算方案

思路:首先这是在01背包的基础上的延申,我们将dp数组开成二维的,dp[i][j]中,j就是正常的背包大小,i就是第i件商品操作时的情况,在操作时我们只操作主件,因为附件会依赖主件,然后分四种情况:只选主件、主件+附件1、主件+附件2、主件+附件1+附件2。然后就是背包操作了。

2025-07-10 17:45:20 201

原创 算法:双向广搜 洛谷 进阶搜索 p1379 八数码难题

思路:已知初始状态和最终状态,我们可以将两个状态,以数字形态去进行bfs搜索,也就是所谓的双向广搜,在bfs中,要注意以数字状态转化为图,再将图转化为数字,然后我们可以用一个map,表示这个数字它是正向过来的,还是反向过来的,只要有一个数字他是从两边过来的,那就可以结束程序,然后答案就是他从正向过来的步数加上从反向过来的步数。

2025-07-10 17:18:16 318

空空如也

空空如也

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

TA关注的人

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