摘要: vector: 用法: sort(ve.begin(),ve.end());//排序 ve.push_back();//末尾插入 ve.pop_back();//末尾删除 ve.insert(v.begin(),x);//在最头插入x ve.insert(v.begin()+2,x);//在第二个元 阅读全文
posted @ 2024-06-25 16:55 wlqtc 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 并查集 并查集,就是看谁和谁是一伙的,加入到同一棵树中。 代码要点: //找到一个结点根结点的函数 int fin(int x) { if(rt[x]==x)return x; return rt[x]=fin(rt[x]);//快速查找 } //把每一个序号的父结点改为自身 for(int i = 阅读全文
posted @ 2024-06-25 16:55 wlqtc 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 前缀和&二维前缀和 1. 前缀和 先写了一道前缀和的题目,以前的我这能骗人,其实不太沾边,所以先放一个模板代码在这。 前缀和的原理就是,a[i]的意义是从1~i的数的总和是多少,如果我想 #include<bits/stdc++.h> using namespace std; const int N 阅读全文
posted @ 2024-06-25 16:55 wlqtc 阅读(20) 评论(0) 推荐(0) 编辑
摘要: (Day6)算法复健运动for蓝桥杯-常用数学 1. 欧几里得算法:辗转相除法(求gcd) int gcd(int a, int b) { return 0 == b ? a : gcd(b, a % b); } 或者C++直接调用: 编译没过,说是不能是无符号数 unsigned int a=10 阅读全文
posted @ 2024-06-25 16:54 wlqtc 阅读(13) 评论(0) 推荐(0) 编辑
摘要: (Day7)算法复健运动for蓝桥杯-二分 二分比较简单,这里主要摘一些常用的写法: 1.找到目标数 int l,r,mid; while(l<=r) { if(a[mid]==x)return mid; else if(a[mid]<x)l=mid+1; else r=mid-1; } 2.找范围 阅读全文
posted @ 2024-06-25 16:54 wlqtc 阅读(8) 评论(0) 推荐(0) 编辑
摘要: (Day9)算法复健运动for蓝桥杯-双指针 先粘一个博客:素材来源https://www.cnblogs.com/luoyj/p/12408871.html 尺取法(又称为:双指针、two pointers)是算法竞赛中一个常用的优化技巧,用来解决序列的区间问题,操作简单、容易编程。 如果区间是单 阅读全文
posted @ 2024-06-25 16:53 wlqtc 阅读(16) 评论(0) 推荐(0) 编辑
摘要: (Day10)算法复健运动for蓝桥杯-差分&二维差分 差分简介 差分是前缀和的逆运算 b[i]=x[i]-x[i-1]; (差分的前缀和等于原序列) 可以用来更新区间 如果要l 到 r都加z 可以使用一个差分数组 a[l]+=z a[r+1]-=z 一维差分模板题: https://www.luo 阅读全文
posted @ 2024-06-25 16:44 wlqtc 阅读(14) 评论(0) 推荐(0) 编辑
摘要: (Day11)算法复健运动for蓝桥杯-最短路 1. Dijkstra 真女人就要直接学时间优化版本的Dijkstra (一般只能算一个点到其他边的最短路)比较局限的一种算法,不能计算负权的 #include<iostream> #include<algorithm> #include<cstdio 阅读全文
posted @ 2024-06-25 16:44 wlqtc 阅读(8) 评论(0) 推荐(0) 编辑
摘要: (Day8)算法复健运动for蓝桥杯-最小生成树 一提到生成树就是经典prim和kruskal,一个从一个点开始,一个把边排序 虽然不用反复造轮子,但是还是需要从算法思想直接写出来,不能老背板子 练手的模板题: https://www.luogu.com.cn/problem/P3366 krusk 阅读全文
posted @ 2024-06-25 16:44 wlqtc 阅读(9) 评论(0) 推荐(0) 编辑
摘要: (Day13) 算法复健运动for蓝桥杯-背包 01背包: https://www.acwing.com/problem/content/2/ 倒着循环,保证每个只用一次 for(int i=1;i<=n;i++) { cin>>v>>w; for(int j=t;j>=v;j--) { dp[j] 阅读全文
posted @ 2024-06-25 16:44 wlqtc 阅读(9) 评论(0) 推荐(0) 编辑
摘要: (Day5)算法复健运动for蓝桥杯-拓扑+前向星存储+DFS+记忆化 https://www.luogu.com.cn/problem/P1137 这题比较简单,但是比较经典,看了下我几年前的写法是用拓扑排序写的,图的存储方法用的是前向星。而现在我已经忘记前向星怎么存储的了,而且一看到这种需要继承 阅读全文
posted @ 2024-06-25 16:44 wlqtc 阅读(13) 评论(0) 推荐(0) 编辑
摘要: (Day12)算法复健运动for蓝桥杯-单调队列 模板题:https://www.luogu.com.cn/problem/P1886 这个不是严格的生成真正的滑动窗口,而是满足找最大值和最小值。 详见注释: #include<bits/stdc++.h> using namespace std; 阅读全文
posted @ 2024-06-25 16:43 wlqtc 阅读(5) 评论(0) 推荐(0) 编辑
摘要: (Day14) 算法复健运动for蓝桥杯-树形DP 树形DP顾名思义就是树形的DP(说了等于没说) 总之没什么需要讲的,来点题目,今天选的题目是蓝桥杯的,不过是省赛。 蓝桥杯2021省A luoguP8744 https://www.luogu.com.cn/problem/P8744 一道树形题目 阅读全文
posted @ 2024-06-25 16:43 wlqtc 阅读(11) 评论(0) 推荐(0) 编辑
摘要: (Day14) 算法复健运动for蓝桥杯-分治&归并排序 分而治之,个人理解就是类似递归,就是把大问题转化为子问题,然后一步步解决的 例子: 归并排序讲解: https://www.cnblogs.com/chengxiao/p/6194356.html 就是先用递归把数字分开,然后再按照顺序把两头 阅读全文
posted @ 2024-06-25 16:43 wlqtc 阅读(9) 评论(0) 推荐(0) 编辑
摘要: (Day16) 算法复健运动for蓝桥杯-KMP(看猫片) next数组 next数组是子串的每一位对应的一个数字 这个数字是这一位的前面所有位置的最长真前后缀 最长真前后缀: 最前面和最后面相同的字母的长度 J 0 1 2 3 4 5 6 7 8 9 模式串 a b c a a b b c a b 阅读全文
posted @ 2024-06-25 16:42 wlqtc 阅读(22) 评论(0) 推荐(0) 编辑
摘要: (Day17)算法复健运动for蓝桥杯-文件处理 看例子就行了: #include<bits/stdc++.h> using namespace std; int main() { ifstream ifs("test5_in.txt");//读入 ofstream ofs("test5_out.t 阅读全文
posted @ 2024-06-25 16:41 wlqtc 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 2021省赛第一轮A组 A题 答案:3181 #include<bits/stdc++.h> using namespace std; int sum[109]; bool check(int x) { while(x) { sum[x%10]++; if(sum[x%10]>2021)return 阅读全文
posted @ 2024-06-25 16:41 wlqtc 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 2022省赛A组 C题 D题 没有简易版,简易版没有意义。 #include<bits/stdc++.h> using namespace std; const int N = 2e6+9; int a[N]; int vis[N];//大小为i的数最后一次出现在位置 struct node { i 阅读全文
posted @ 2024-06-25 16:40 wlqtc 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 2023省赛A组 题目来源:去洛谷上搜索“蓝桥杯 2023 省 A”即可 A.幸运数(填空) 因为是填空只要把结果跑出来就行,不用太在意会TLE 知识点:前缀和 AC代码: #include<bits/stdc++.h> using namespace std; const int N=1e8; b 阅读全文
posted @ 2024-06-25 16:40 wlqtc 阅读(11) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示