![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
蓝桥杯
文章平均质量分 68
蓝桥杯的题目
Selvaggia
这个作者很懒,什么都没留下…
展开
-
十四届蓝桥杯省赛CB
最本质的暴力搜索是,已知一个具体的序列,选出一个子序列(注意了隐含的条件是选取元素的顺序和原序列顺序一致),满足某种条件,爆搜的方式是对于1~n每个元素,走取或者不取两个分支。至于1~n打乱顺序,u是指向目标数组的指针,代表这个位置该放哪个元素,通过数组长度的增长将路径像远处延伸,分支的可能是各个元素,需要遍历原数组。怎么说呢,就是具体知道原来的顺序,不需要通过start控制选取元素的顺序,start是控制大小的,woc,突然发现,如果被包围了,那么一定是被同一个岛包围的TTTTTTTT我是傻子。原创 2023-06-07 17:03:09 · 531 阅读 · 0 评论 -
十三届蓝桥杯国赛2022
还是得dfs搜索选取方法,但可以进行适当的剪枝,因为B操作是可以判断当下是否选取的。注意的点是对于 AB操作的次数,可以把ab当作dfs的参数,如果不,那就得记得还原现场。要么单独判断是否有一对数是一倍的关系,要么mp记录a【i】出现的次数,如果是一倍且只出现过一次,不计入ans。我想,单单考虑任意两块砖的摆放位置,就是一种局部的贪心最优思想,大胆推测局部最优导致最优!如果不剪枝,极其暴力枚举所有方式,就可以通过得到二进制数集合。的时候,只能用上A。过了90%,这种贪心其实无法保证全局最优。原创 2023-06-01 19:35:50 · 1553 阅读 · 0 评论 -
3574. 乘积数量(连乘乘积为负数的区间个数,前缀和)
【代码】3574. 乘积数量(连乘乘积为负数的区间个数,前缀和)原创 2023-05-03 16:25:20 · 91 阅读 · 0 评论 -
3182.密文搜索(打乱顺序再匹配就是排序后相等)
第一个密码匹配了 3 次,第二个密码匹配了 1 次,一共 4 次。下标从0开始要注意下标之间的关系。原创 2023-05-03 16:18:18 · 81 阅读 · 0 评论 -
蓝桥杯之数论专题
蓝桥杯之数论专题等差数列最短项数(最大公因子)X的因子链(分解质因子)思路:做法一:直接分解质因子做法二:欧拉筛(原理是每一个非质数都被其最小质因数筛去,则可以记录合数的最小质因数,直接找到x的最小质因数,分解掉再继续找剩下部分的质因数)边乘边除的适宜情况聪明的燕姿五指山(扩欧)扩展欧几里得算法C循环(扩欧)最大比例正则问题糖果(状压dp)等差数列最短项数(最大公因子)一开始简单以为是 n-1个差值里面的最小值,实际上不一定满足别的n-1个差值就恰好是该最小值的整数倍,应该找的是n-1个差值的最大公原创 2023-03-25 15:05:36 · 967 阅读 · 0 评论 -
3494. 国际象棋(状压dp)
【代码】3494. 国际象棋(状压dp。原创 2023-03-20 23:29:38 · 88 阅读 · 0 评论 -
乘除后判断,分解质因数,每个计算器对应一个优先队列
不能释放,那么后面的t+x就更加不可行 (每个计算机对应一个优先队列)对n分解质因数,n的每个质因数的幂次都应该是偶数,不是就要靠x补上。在此之前可能会有很多的任务分别在不同的计算机上执行,上执行,记录在优先队列中{结束时间和占用的运算力}为什么存储在优先队列中,因为可能有多个任务占用计算机。再次需要用到计算机b时,判断是否可以释放占用的运算力。释放时间早的,更有可能释放,如果释放时间。当一个任务在a时刻来临,如果之前有任务 在计算机。但是只需要关注计算机。原创 2023-03-20 22:54:24 · 192 阅读 · 0 评论 -
第十三届蓝桥杯
ceil函数我给你跪了,总之ceil(x) 返回的是longlongintlonglongint是不超过k不是等于k啊大佬longlongintlonglongint。原创 2023-03-03 21:38:33 · 4754 阅读 · 1 评论 -
搜索大全。
这样也能过,可能是样例太少了,但是当即比较当即入队,同样步数的节点,只能保证降序,排在最前面的不一定是距离终点最小的(我觉得是不对的❌。最典型的bfs,一般有4种移动方式,每一种都一定会向终点更接近且向终点接近的距离程度是一样的,唯一影响的是这条路上可能会有走不了的路。类似于法一的思想但错误。(.可走,*不可走)原创 2023-03-03 21:37:58 · 572 阅读 · 0 评论 -
蓝桥杯任意刷
那么str【i】应该放在队列中哪个位置->Q中大于str【i】的第一个元素的位置(步骤二)如果没理解错的话,拥有了队列Q可以,随时获取 给定长度的最小字典值的上升子序列。这里最后的队列Q ,可以做到长度为k且最大元素最小的子序列 就是Q(1~k)而正因为拥有这种性质(长度k-1的子序列字典值越小,更可能获得更长的子序列)错了,Q队列存放的就是 Q[i]对应的是 长度为i的子序列的最小末尾元素。其之前的(按照这种插入Q的方式,Q中元素一定是升序排列的)(“我们这么理解,同样长度的子序列,是不是末尾的人越矮,原创 2023-03-02 09:38:50 · 292 阅读 · 1 评论 -
蓝桥杯之枚举、模拟与排序
注意这些数是不重复的,故 一个区间数字连续==最大值与最小值的差值是等于区间长度。可以提前考虑上 长度为1的区间,但是在长度大于1 的区间段的求解中,需要计入。次附近,并且由于每次j从i开始,因此总的运行次数。这里运行的次数是刚好在。原创 2023-01-26 10:46:02 · 69 阅读 · 0 评论 -
恰好装满背包、恰好取k倍(取余)
物品容量恰好等于m (恰好装满背包) 和 取得的糖果数恰好为k的倍数若要求此时的最大价值,dp数组初始化为负无穷详细解释若只是要求判断是否可行,dp数组的值只有true 、false两种,进行||操作,初始化为false,即可判断整除1、膜法交配率要看几个数的和对k求余是否等于j,只要将这些数分别除以k得到的余数相加的和 对k求余是否等于j2、对每个数求余数,为了防止得到的余数是负数,每得到余数加上k再对k求余3、递推式可能有不同,只要 初始化条件和递推式搭配合理就OK递推式1。原创 2023-01-24 22:07:59 · 1347 阅读 · 0 评论 -
蓝桥杯之数学与简单dp
首先我们必须要明白两只蚂蚁相撞掉头可以看作时一只蚂蚁穿过了另一只蚂蚁,因为相撞之后两只蚂蚁都感冒了,掉不掉头其实无所谓,毕竟都感冒了。特殊情况,若第一只感冒的蚂蚁向左走, 其左边没有向右走的蚂蚁,左边的蚂蚁永远不可能感冒,右边也不可能追上。同理,若第一只感冒的蚂蚁向右走, 其右边没有向左走的蚂蚁,右边的蚂蚁永远不可能感冒,左边也不可能追上。从 第一只感冒的蚂蚁出发,观察其左右情况,原创 2023-01-24 20:52:32 · 164 阅读 · 0 评论 -
蓝桥杯之二分与前缀和
目的总是取到一个最合适的值。首先,找到取值的范围,在该范围内进行二分。判断取值是否满足题意条件……整数二分模板一共有两个,分别适用于不同情况。算法思路:假设目标值在闭区间lr[l, r]lr中, 每次将区间长度缩小一半,当lrl = rlr时,我们就找到了目标值。模板一:(再也不用为边界的处理而头痛了)当我们将区间lr[l, r]lr划分成lmid[l, mid]lmid和mid1rmid1r时,其更新操作是rmid。原创 2023-01-24 10:58:22 · 1080 阅读 · 0 评论 -
蓝桥杯之递归与递推
自然想到,只需从第2行开始,其实不然,如果直接从第二行开始操作,那么推着推着会发现,这是一种唯一的固定的操作,永远是受牵制地按开关,而回到递推的源头——第一行的灯状态,于是,在最起初,可以枚举第一行灯的状态,以此为初态去递推,方可比较得出最小操作次数。状态存放在数组中 不科学× (因为递归写法,按照当前状态执行完接下来的步骤,而非递归状态,每个节点所依仗的当前状态不同,后出栈的节点等到出栈时,当前状态早已被覆盖改变)行的开关,因为很显然会让上一行(第。263 约等于 108。220 约等于106。原创 2023-01-19 23:59:31 · 1462 阅读 · 0 评论 -
七段码(爆搜,set去重、二进制去重)
七段码七段码set去重二进制去重(有点像bitset)暴力,要特判集中情况,容易遗漏啦七段码set去重#include <bits/stdc++.h>/*#include <iostream>#include <algorithm>#include <set>*/using namespace std;const int N=8;int g[8][8];int fa[8];int res=0;set<set<int>原创 2022-04-07 16:39:25 · 407 阅读 · 2 评论 -
相同的球放入不同的盒子,单源最短路径
@TOC货物摆放暴力搞不定有点搞笑,暴力搞不定,极其缓慢#include <iostream>#include <algorithm>#include <set>using namespace std;#define int unsigned long longconst int N=105;int a[5];struct node{ int x,y,z; node(int x,int y,int z):x(x),y(y),z(z){ }原创 2022-04-06 22:10:02 · 842 阅读 · 0 评论 -
double变量去重、巧求截距、根据坐标求多边形面积(坐标要顺/逆时针输入)
答案:40257double判断相等,还是要防止爆精度先排序再相邻比较,比较保险#include <iostream>#include <algorithm>#include <math.h>#include <vector>#include <set>#define double long double#define pdd pair<double,double>#define EPS 1e-8using na.原创 2022-04-06 16:32:57 · 237 阅读 · 0 评论 -
砝码称重dp、bitset优化(所有元素的和、差的集合)
砝码称重好歹想到动态规划!!!该有这样动态规划的思想,并不一定需要自己考虑周全,要让程序递推前i个数是否能产生j这个数值#include <iostream>#include <algorithm>#include <set>using namespace std;const int N=105;int a[N];int n;int dp[N][100005];//该有这样动态规划的思想,并不一定需要自己考虑周全,要让程序递推 //前i个数是否能原创 2022-04-06 09:16:58 · 555 阅读 · 0 评论 -
摆动序列(爆搜、dp)
暴力极美,虽然TLE,最终归宿还是DP一、摆动序列爆搜DPdp优化一、摆动序列爆搜#include <iostream>using namespace std;const int N=10000;int m,n;//序列长m,每个数取值1~n int res=0;void dfs(int p,int x){ if(p==m){ res++; res%=N; return ; }// 接下来搜P+1位置的取值 if((p+1)&1){ for(原创 2022-04-05 12:15:27 · 277 阅读 · 0 评论 -
输入格式(保留n位小数)
C语言怎么保留n位小数并且四舍五入很简单,假如你有一个float型变量a,其值为1.23456,而你只想保留三位小数,也就是希望得到1.235,只需要令:a = (int)(1000.0 * a + 0.5) / 1000.0即可。如果要保留四位小数,就把1000都换成10000,依次类推。(以上来源:https://zhidao.baidu.com/question/22834864.html)其实,用C语言中的printf控制好精度后,要输出几位小数,然后输出可以自动进行四舍五入,不需要人工舍原创 2022-04-03 10:55:04 · 356 阅读 · 0 评论 -
蓝桥杯刷题
这里写目录标题数字三角形(有意思,锁定终点)跳跃十进制转十六进制冒泡排序数字三角形(有意思,锁定终点)向左下走的次数与向右下走的次数相差不能超过 1,直接锁定终点!#include <iostream>using namespace std;const int N=105;int a[N][N];int dp[N][N];int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ for(int j=1;j<原创 2022-03-29 16:53:08 · 548 阅读 · 0 评论 -
回文日期(续)
回文日期woc,原来New online Judge上AC的标准比蓝桥杯官网上的还要严格!在那里到现在也没ac,妙啊1、日期要规范合理,考虑闰年,月份天数等等2、要求输出下一个回文数,要么枚举整个8位数,从末位加1开始,要么枚举前4位的话,要考虑后4位倒序是否小于前4位,小于可以按前4位回文,大于,第4位得加1枚举前4位#include<iostream>#include<string.h>using namespace std;int month[15]={0,31原创 2022-03-15 09:54:55 · 112 阅读 · 0 评论 -
高精度 * 低精度
1107: 乘积根#include <iostream>#include <algorithm>#include <vector>using namespace std;vector<int> mul(vector<int> a,int b){ vector<int> c; int temp=0; int len=a.size(); for(int i=0;i<len;i++){ temp+=a[i]*b;原创 2022-02-21 11:55:19 · 416 阅读 · 0 评论 -
蛇形、之字、回字打印
这里写目录标题打印漏斗Z字型扫描(有的又叫这是蛇形扫描)方法一:处在同一对角线(东北指向)上的点 之 行坐标+纵坐标 的和相等,且就是对角线序号方法二:利用东北指向的对角线上的点 横纵坐标之和相等,可以把横纵坐标之和相等的点存储在邻接表adj【i+j】(一个vector < int > 类型的数组)里面方法三:遍历完了一条对角线拐弯方法四:Z字型打印漏斗题目链接#include <bits/stdc++.h>using namespace std;int main(){原创 2022-02-04 13:24:43 · 1426 阅读 · 0 评论 -
分形 打印
打印分形图形分形 ,每一部分都(至少近似地)是整体缩小后的形状。【1】1104: 分形图从左上角扩散递归从中心扩散递归【2】 打印图形(2018年第9届蓝桥杯省赛试题)。(原题是填空题)(1)从左上角扩散递归,左上角不用打印,递归到有图形的各个位置就好(2)从中心扩散递归蓝桥杯填空题给出的源代码就是从中心扩散递归的思路【3】打印图形(2014年第5届蓝桥杯省赛试题)【4】递归三角形图案。分形 ,每一部分都(至少近似地)是整体缩小后的形状。分形,具有以非整数维形式充填空间的形态特征???通常被定义为“一原创 2022-02-03 14:08:55 · 1089 阅读 · 1 评论 -
466. 回文日期
466. 回文日期思路是列举日期,再来判断日期是否在d1和d2之间,是否回文由于日期有8位,分别列举这八位复杂度达到10^8其实只需要列举前4位数1000~9999,通过前四位数确定这8位回文数,再判断日期是否符合条件(1)由于日期具有单调递增性,则date1 <= date <= date2,表示当前日期在指定范围内(2)如何判断是闰年还是平年普通闰年:公历年份是4的倍数的,且不是100的倍数,为闰年。世纪闰年:公历年份是整百数的,必须是400的倍数才是世纪闰年参考链接原创 2022-01-27 20:21:35 · 185 阅读 · 0 评论 -
1363: [蓝桥杯2018初赛]航班时间
1363: [蓝桥杯2018初赛]航班时间1、假设从x去y地再回x地,x比 y快a小时飞行时间=去+a=回-a显然等于(去+回) / 2;2、getline可以读入输入的空格或回车,cin和getline之间一定要用 getchar或者cin.getchar()读取换行符编译器上可以,交到oj上wa,string line;getline(cin,line);保险起见,cin和getline(cin,str)之间用getline(cin,line)读取换行符3、printf("%02d:%原创 2022-01-27 17:22:03 · 6516 阅读 · 0 评论 -
1320: [蓝桥杯2017初赛]方格分割(DFS)
1320: [蓝桥杯2017初赛]方格分割主要是思维啦由于切割后两部分要对称,切割线总会经过整个方块的中心点(3,3),从中心点出发,只需要遍历找到半条分割线,一旦走到边界点即分隔出一种,一条路结束。但由于dfs是一条路走到黑,设置vis时要将对称点也设置成1,走一条路的时候要在从这点出发前将这点设为走过,结束这条路之后再回溯消除前一条路走过的痕迹#include<iostream>#include<string.h>using namespace std;int v原创 2022-01-27 12:28:11 · 392 阅读 · 0 评论 -
矩形中分出正方形,递归优化
1103: 地盘划分最少可以划分多少个正方形,1个?NO,是指充分划分,也就是剩下的部分不能再划分了,所以每次割正方形都要割一个最大的正方形//3 * 4的矩形,依次可以分隔成3 * 4->3 * 3, 3 * 1,1、要对递归进行优化呀,不管是否超时都要追求好的算法2、本来想用一个数组来记录已经找过的状态,以便下次查询,不仅想法不靠谱//const int MAX=1e5+2;//int a[MAX][MAX];只是定义了一个这样大的数组在New Online Judge上就报错/原创 2022-01-25 23:11:30 · 1076 阅读 · 0 评论 -
两列数相加求最小的n个和 priority_queue<node>,其中一个数组下标存放在结构体
1102: 序列合并1、本质还是双层循环,但是b数组的下标巧妙地递增(b的下标存在结构体中,只有当找到一个最小节点时才往后增一次,这样一来就可以保证 { b【0】与a数组中所有的加数得到的和}、{b【1】与a数组中当前最小的数相加的和} 一起在优先队列中比较(自动排序)避免了超时由于最小的数可以确定,要找到下一个最小的数,把两个加数都增加显然不对,而应该保持一个加数不变,另一个加数递增一次由于a数组中所有的数都和bmin组成了和,a所有数都可以进行比较于是只要将b数组提供的这个加数往后递增,在当前原创 2022-01-25 17:17:35 · 593 阅读 · 0 评论