![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蓝桥杯
发现王国在逃公主٩(๑^o^๑)۶
这个作者很懒,什么都没留下…
展开
-
蓝桥杯一些做题思维
拼数 几数拼在一起 返回最大整数cmp函数 return a+b>b+a原创 2022-03-16 17:00:01 · 94 阅读 · 0 评论 -
链表基础操作 / 循环链表约瑟夫环/STL链表基本操作
链表的基础操作程序功能输入几 就把几调到数最前面程序步骤:1.插入函数2.初始化函数3.删除节点4.把排列展示出来程序注意不同函数的指针 不同头指针定义为全局变量代码实现截图#include<bits/stdc++.h>using namespace std;struct Node{ int data; Node *next;};Node *head = new Node;// 构造 head->1->2->3.....的链表 void原创 2022-03-14 16:14:06 · 1353 阅读 · 0 评论 -
dp状态压缩
用状态压缩表示糖果口味大佬:我们简单演示一下用状态压缩表示一包糖果中的口味。例如输入一包糖果的“22,33,55”三种口味。要把这 33 个口味压缩成二进制数 1011010110,就需要做“移位”和“或”操作:定义初始值 tmp = 0tmp=0。输入口味“2”。先做移位 1<<(2−1),得二进制数 10;然后再与 tmptmp 或,得 tmp= tmp| 10 = 10tmp=tmp∣10=10。输入口味“3”。先做移位 1<<(3−1),得二进制数 100;然后再与原创 2022-03-09 15:54:51 · 86 阅读 · 0 评论 -
坐标值的精度
平面几何–坐标值的精度编程语言写法实数 用double类型精度高偏差值eps 一般是10的-8次方const double pi = acos(-1.0); //高精度圆周率const double eps = 1e-8; //偏差值,有时用1e-10 判断浮点数是否等于0 = 看是否小于epsint sgn(double x){ //判断x是否等于0 if(fabs(x) < eps) return 0;原创 2022-03-02 15:51:56 · 359 阅读 · 0 评论 -
蓝桥杯题目----平面拆分(set去重 pair 直线分平面的交点)
#include<bits/stdc++.h>using namespace std;const int N = 1005;double A[N], B[N];int main(){ int n; cin>>n; pair<double, double> p; set<pair<double, double>> s; //利用set自动去重功能筛选掉重边 for(int i = 0; i < n原创 2022-03-02 09:24:31 · 180 阅读 · 0 评论 -
set和pair和map
set众所周知set为集合之意,底层使用平衡二叉树——红黑树实现;插入删除操作仅仅需要指针操作节点即可完成,不涉及到内存的移动和拷贝,在set中,元素都是唯一的。而且在默认的情况下会对元素自动进行升序排序,支持集合的交,差,并,对称差等一些集合上的操作,如果在集合中的元素允许使用重复那么可以用multiset。set常用操作头文件在这里插入代码片#include<set>s.begin() 返回set容器的第一个元素s.rbegin() 反向迭代器s.end() 返回set容器的原创 2022-03-01 10:50:45 · 653 阅读 · 0 评论 -
排序需要注意的事(sort )
1.如果题目中说从小到大输出.则新建数组,把数据放数组里,对数组排序.2.总共排num个数 如果数组a下标从0开始 sort(a,a+num)如果数组下标从1开始 sort(a+1,a+1+num);原创 2022-02-27 15:26:23 · 136 阅读 · 0 评论 -
记录走过的路径-----栈
dfs:记录走过的路径:栈原创 2022-02-19 12:03:48 · 209 阅读 · 0 评论 -
c++的队列基本操作(queue pair类型) c++栈的操作
题目请见:全球变暖queue<Type> q; //定义队列,Type为数据类型,如int,float,char等q. push(item); //把item放进队列q.front(); //返回队首元素,但不会删除q.pop(); //删除队首元素q.back(); //返回队尾元素q.size(); //返回元素个数q.empty(); //检查队列是否为空 pair类型:原创 2022-02-14 21:03:33 · 3310 阅读 · 0 评论 -
深度优先搜索
ans; //答案,用全局变量表示void dfs(层数,其他参数){ if (出局判断){ //到达最底层,或者满足条件退出 更新答案; //答案一般用全局变量表示 return; //返回到上一层 } (剪枝) //在进一步DFS之前剪枝 for (枚举下一层可能的情况) //**!!!对每一个情况继续DFS if (used[i] =原创 2022-02-14 12:07:32 · 49 阅读 · 0 评论 -
迷宫问题上下左右的代码
定义数组X[ ]Y,[ ],x[1]y[1]表示方向向上向上x += X[i]; y += Y[i];#include<bits/stdc++.h>using namespace std;int X[] = {0, -1, 1, 0, 0}; //上下左右4个方向int Y[] = {0, 0, 0, -1, 1};bool vis[10][10]; //标记点是否被访问过int res = 0;void dfs(int x, int y){原创 2022-02-12 10:09:14 · 419 阅读 · 0 评论 -
函数体中return的用法
return 结束函数(方法)即return 后面的函数不被执行void dfs(int x, int y){//point2 if(x == 0 || y == 0 || x == 6 || y == 6){ res++; return ; } for(int i = 1 ; i <= 4 ; i++){ //上下左右四个方向 x += X[i]; y += Y[i]; //走一步 if(!v原创 2022-02-11 12:02:39 · 625 阅读 · 0 评论 -
算法---尺取法
把循环指针 i 、j 称为「扫描指针」,在尺取法中,这两个指针 i、j,有两种扫描方向:反向扫描。i、j 方向相反,i 从头到尾,j 从尾到头,在中间相会。也可以把反向扫描的 i、j 指针称为「左右指针」。同向扫描。i、j方向相同,都从头到尾,但是速度不一样,比如可以让 j 跑在 i 前面。也可以把同向扫描的 i、j 指针称为「快慢指针」,此时由于 i 和 j 速度不同,i 和 j 之间在序列上产生了一个大小可变的「滑动窗口」,这是尺取法的优势,有灵活的应用。注意,用尺取法的最关键之处在于,两个指针原创 2022-01-29 21:04:49 · 1411 阅读 · 0 评论 -
蓝桥杯思维题
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。{1}{1} + \frac{1}{2} + \frac{1}{4} + \frac{1}{8}+\cdots每项是前一项的一半,如果一共有 2020 项,求这个和是多少,结果用分数表示出来。即1/1+1/2+1/4+1/8+1/16…共20项输入描述无输出描述输出格式为 分子/分母。#include<bits/stdc++.h>using namespace std;int main(){ in原创 2022-01-26 21:31:12 · 6080 阅读 · 0 评论 -
数据输入的写法
已知个数for(int i=1;i<=个数;i++)自己输入数据测试 未知个数while(输入!=EOF)因为机器测试时固定数据 按文本读入自己输入时的结束操作:回车+ctrl+z(屏幕出现‘z)+再按一个回车结束命令原创 2022-02-08 15:52:48 · 661 阅读 · 0 评论 -
基本算法:排序+排列+自写全排列
对于 STL 的排序函数 sort(),我们从三个方面切入:定义:void sort (RandomAccessIterator first, RandomAccessIterator last);void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);返回值:无复杂度:O(nlogn)。注意,它排序的范围是 [first, last),包括 firstfirst,不包括 last。大佬:排原创 2022-01-22 21:39:09 · 218 阅读 · 0 评论 -
注意的问题(外卖店优先级)
题目:拼数for(int i = 0; i < n; i++)cin >> a[i]; 注意:cin可以实现a[1]里放一个字符串这种。排序注意bool cmp (string a, string b){ //从大到小字典序排序return a + b > b + a; //注意体会这个技巧}sort(a, a + n, cmp); //从大到小字典序排序cmp函数的意思为比较a+b和b+a。选择较大的放前面,实现降序。#include&原创 2022-01-16 18:03:01 · 361 阅读 · 0 评论 -
基本数据结构———二叉树
二叉树的优势:在二叉树上能进行极高效率的访问。二叉树很适合做区间操作。二叉树内的一棵子树可以看成整棵树的一个子区间,求区间最值、区间和、区间翻转、区间合并、区间分裂等,用二叉树都很快捷。二叉树用 BFS 和 DFS 搜索处理都极为简便。二叉树可以一层一层地搜索,这是 BFS。二叉树的任意一个子结点,是以它为根的一棵二叉树,这是一种递归的结构,用 DFS 遍历二叉树是绝配。二叉树的存储(实现对于二叉树的一个结点,我们通常要存储结点的值、左右子结点。struct Node{原创 2022-01-15 19:03:07 · 147 阅读 · 0 评论 -
基础数据结构——队列
队列特点:先进先出链队列实际上和单向链表一样,用指针把各个结点连接起来。循环队列使用一组连续的存储单元依次存放队列元素,用指针 headhead 指示队列头元素,rearrear 指向尾元素。当 headhead 和 rearrear 走到底时,下一步回到开始的位置,从而在这组连续空间内循环。设计成循环能解决溢出问题。为了解决查找较慢的问题,故有了「优先队列」,它能让优先级最高的元素先出队列,效率是O(log 2n)(log以2为底的n次方)的。const int MAX_N = 1e5;原创 2022-01-12 19:16:26 · 199 阅读 · 0 评论 -
高精度加法
高精度加法原创 2022-01-08 20:00:39 · 232 阅读 · 0 评论