
笔记
失格夕颜
努力学习大佬们操作与思想:格局是被委屈撑大的,温柔也是懂事换来的,什么都明白的人最温柔也最冷漠。
展开
-
蓝桥杯——多种情况的尺取发(类比unordered_set<char> lookup)
#include<bits/stdc++.h>#include#define maxn 1000000using namespace std;vectora[maxn+5];int n,d,k;bool judge(int x){int len=a[x].size();if(len<k)return false;int l=0,r=0,sum=0;sort(a[x].begin(),a[x].end());while(l<=r&&r<le原创 2021-04-14 16:44:38 · 311 阅读 · 0 评论 -
蓝桥杯---日志管理
#include<bits/stdc++.h>#include<vector>#define maxn 1000000using namespace std;vector<int >a[maxn+5];int n,d,k;bool judge(int x){ int len=a[x].size(); if(len<k)return false; int l=0,r=0,sum=0; sort(a[x].begin(),a[x].end());原创 2021-04-14 00:53:56 · 112 阅读 · 0 评论 -
蓝桥杯---bfs
#include <bits/stdc++.h>using namespace std;char mp[30][50]; //地图bool vis[30][50]; //是否被走过int dir[4][2] = { {1,0}, {0,1}, {-1,0}, {0,-1} }; // 按照数组方向:下,右,上,左char dirc[4] = {'D','R','U','L'};int n, m; //迷宫的行和列//对于dfs 和 bfs 来说 数组的基本信息最好放在全局变原创 2021-04-13 01:52:59 · 134 阅读 · 0 评论 -
蓝桥杯day23_七段码——并查集&&dfs
思考1:首先我们需要遍历所有情况,因此使用深搜dfs。请与全排列区分开,虽然都是用dfs 目前作者的初步判断是:全排列需要回溯(即状态恢复);灯有开与不开两种情况(分而治之),因此状态恢复后也要进行遍历。可以想象:全排列就是闪灵里面小男主迷宫走到死路,就会原路返回,且不留痕迹(防止被爸爸追上)。遍历所有情况则是题目中的LED灯,黑与亮都是它的一部分2:排列结束后需要判断亮灯的部分是否是一个整体,这需要并查集的思想:如果两个 个体 相邻且均亮灯,那么他们便是一个整体,遍历所有个体,便可以把它们全部化原创 2021-04-09 21:08:26 · 147 阅读 · 0 评论 -
蓝桥杯day22_Z字变换
有人会问了,leetcode上面不是有精美的解析了吗,画蛇添足毫无意义。答:这只是作者不想去leetcode重温经典,巩固自己思维,做笔记的一篇博客罢了,可以出门右转。愿意看看我的思路也可以向下看看思考1:总的来说这就是对字符串的处理,有人一开始可能想用二维数组,先别急,看了之后,就会自行发现大拿们的思想美妙之处。2:纵向存储,横向读取。若是二维数组,处理“掉头时”还要考虑换列操作。我们可以想象成每一行都是一个字符串,那么我们只需要处理“掉头”操作(即换行),新来的字符,只需在换行后进行插入操作即原创 2021-04-09 20:41:28 · 86 阅读 · 0 评论 -
蓝桥杯day21_回文日期
思想题目我们需要满足两个要求,一个是从当前日期开始,找到基础版的回文日期,另一个是找到满足特殊要求的回文日期。1:稍加思考可以发现一年至多一个回文日期。2:输入的是整数,但不能单纯的个位数叠加,可以只叠加年份,日和月对应改动即可。3:方便处理,转化成整型数组。这样容易判断特殊型的回文日期注意:绝对不能字符串处理,后面天数判断时使用“数字”进行判断,而不是“char。”4:月份的特殊性(最多12个月),导致年份的个位数进制从10进制变成2进制。5:年份的++操作应该放在循环体结尾处:避免开始的一原创 2021-04-09 20:05:40 · 186 阅读 · 0 评论 -
蓝桥杯day20_素数列的整合
数列思考1:对于任意区间(1-1000000)之间查找满足特殊条件的子数列组合,一般我们使用暴力遍历的方法。2:两层循环分别对应子数列的 初始位置 和 对应公差。不同的特殊条件,这两层的内外分布有所不同。题目:范围内找所有长度为6的子素数列素数列,即每一个数都是素数,额外添加一个判断素数的函数即可。#include <bits/stdc++.h>using namespace std;bool check(int num) // 检查素数{ for(int i=2原创 2021-04-03 23:41:55 · 127 阅读 · 0 评论 -
蓝桥杯day19_测试次数(dp双蛋动态规划)
题目测试次数x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机。各大厂商也就纷纷推出各种耐摔型手机。x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通。x星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。塔的每一层高度都是一样的,与地球上稍有不同的是,他们的第一层不是地面,而是相当于我们的2楼。如果手机从第7层扔下去没摔坏,但第8层摔坏了,则手机耐摔指数=7。特别地,如果手机从第1层扔下去就坏了,则耐摔指数=0。如果到了塔的最高层第n层扔没摔原创 2021-04-03 11:52:13 · 227 阅读 · 0 评论 -
蓝桥杯day18_明码_bitset(),to_string()函数使用
标题:明码汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。一个字节可以存储8位信息,用32个字节就可以存一个汉字的字形了。 把每个字节转为2进制表示,1表示墨迹,0表示底色。每行2个字节一共16行,布局是:第1字节,第2字节第3字节,第4字节....第31字节, 第32字节1234这道题目是给你一段多个汉字组成的信息,每个汉字用32个字节表示,这里给出了字节作为有符号整数的值。原创 2021-03-24 19:29:55 · 432 阅读 · 0 评论 -
蓝桥杯day17_特别数的和_短除法
代码#include <bits/stdc++.h>using namespace std;bool check(int x) //短除法判断是否有当前数字{ while(x){ if(x%10 == 2 || x%10 == 0 || x%10 == 1 || x%10 == 9) return true; x /= 10; } return false;}int main(){原创 2021-03-24 19:17:40 · 95 阅读 · 0 评论 -
蓝桥杯day17_数的分解_如何检查某个数是否有特殊数
理解1:短除法可以判断是否该整数是否拥有0-9的特殊字2:对于多个数的四则运算,有要求不能重复情况(AXX),我们可以让后面的数 = 前面的数+1(依次递增),来避免重复选。代码#include <bits/stdc++.h>using namespace std;bool check(int x,int y, int z) //短除法判断是否是不包含2和4{ while(x){ if(x%10 == 2 || x%10 == 4)原创 2021-03-24 15:51:56 · 124 阅读 · 0 评论 -
蓝桥杯day17_等差数列_求已知等差数列的最大公差
理解如何求最大公差??1:给数组排序2:减去arr[1]3:arr[2] 作为基础公差4:从3开始依次更新最大公差代码#include <bits/stdc++.h>using namespace std;int num[10001];int gcd(int a, int b){ //求公差的末班 return b==0 ? a : gcd(b,a%b);}int main(){ int n; cin>>n; for(int原创 2021-03-24 15:40:18 · 178 阅读 · 0 评论 -
蓝桥杯day17_完全二叉树的权值_求sum和最大的层数
标题一个完全二叉树,n个结点,设每层的结点权值之和为sum求解sum最大的层数(sum相等,返回最小深度)理解1:对于for循环遍历,其实我们跳出的条件可以多种多样,但是 “条件” 需要在for循环前或者for循环第一处进行一个定义2:for循环同时可以定义多个3:跳出条件可以是同时满足,也可以是满足多个中的一个4:每层循环可以使多个变量同时进行变化代码#include <bits/stdc++.h>using namespace std;int main(){原创 2021-03-24 15:29:25 · 280 阅读 · 0 评论 -
蓝桥杯day_17_年号子串-进制转换+整数转字符串
思路--------进制转换的方法(短除法)整型转字符串------------1:首先判断当前需要转换成的n进制2:开一个char类型数组(0 <= char <= n)3:开一个空的string4:核心***,空的string 来接收 余数,这个代表转换后的首位5:余数已接收,原来的整型数便可以除去进制6:while出来后,存在string里面的数字是倒序的,因此用for循环从string.size()-1 出发到 0 进行“正序”代码#include <bit原创 2021-03-24 15:15:03 · 164 阅读 · 0 评论 -
蓝桥杯day16_地宫寻宝
问题描述X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。 地宫的入口在左上角,出口在右下角。 小明被带到地宫的入口,国王要求他只能向右或向下行走。走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。当小明走到出口时,如果他手中的宝贝恰好是k件,则这些宝贝就可以送给小明。请你帮小明算一算,在给定的局面下,他有多少种不同的行动方案能获得这k件宝贝。输入格式输入一行3个整数,用空格分开:原创 2021-03-24 15:03:13 · 186 阅读 · 0 评论 -
蓝桥杯day13 _蚂蚁感冒_二维数组思维拓展
中心思想蚂蚁相遇各自调头==蚂蚁相遇当作没有相遇继续前进代码#include <iostream>#include <cmath>#include <iomanip>using namespace std;int arr[10001][2];int ans=1;//初始值为1int main(){ int n; int flag; cin>>n; for(int i=0; i<n; i++)//存储每原创 2021-03-07 16:39:07 · 86 阅读 · 0 评论 -
蓝桥杯day12 _剪格子_DFS四个方向的解决思路
代码#include <iostream>using namespace std;int tem[11][11];int visit[11][11];int dx[4] = {1,0,-1,0}; //四个 方向int dy[4] = {0,1,0,-1};int m,n,sum;int isVisit(int x, int y, int num){ if(x<0 || x>=n || y<0 || y>=m) //超出边界原创 2021-03-07 16:27:21 · 176 阅读 · 0 评论 -
蓝桥杯11 _翻转的价牌_枚举的巧妙处理,数组转化为整数
题目小李的店里专卖其它店中下架的样品电视机,可称为:样品电视专卖店。其标价都是4位数字(即千元不等)。小李为了标价清晰、方便,使用了预制的类似数码管的标价签,只要用颜色笔涂数字就可以了。这种价牌有个特点,对一些数字,倒过来看也是合理的数字。如:1 2 5 6 8 9 0 都可以。这样一来,如果牌子挂倒了,有可能完全变成了另一个价格,比如:1958 倒着挂就是:8561,差了几千元啊!! 当然,多数情况不能倒读,比如,1110 就不能倒过来,因为0不能作为开始数字。有一天,悲剧终于发生了。某个店员不小原创 2021-03-07 16:23:10 · 194 阅读 · 0 评论 -
蓝桥杯Day 10 _接雨水:动态规划与双指针解法
题目动态规划思路**代码(完整) **#include <iostream>#include <vector>using namespace std;int sumArea(vector<int>& height){ int sum=0; int n = height.size(); //共有n列 vector<int> left(n),right(n); //求每列左边和右边的最大值 fo原创 2021-03-07 16:10:18 · 127 阅读 · 0 评论 -
蓝桥杯day 9 _四平方和_多重循环的减压方法
题目巧处 ( 需记忆)1.对于平方的相关问题注意是否可以用sqrt函数2: 对于多重循环相加问题,可以通过(总和-部分),来减少一层循环3:判定一个数是否是整数:先定义 Double x再if(x==int (x))代码段#include <iostream>#include <cmath>using namespace std;int main(){ int a, b, c, n; double d; cin>>n; double Mi原创 2021-03-07 15:54:41 · 106 阅读 · 0 评论 -
蓝桥杯day 8_背包问题_DFS(未解决回溯显方案问题)
题目给定 n 件物品,物品的重量为 w[i],物品的价值为 c[i]。现挑选物品放入背包中,假定背包能承受的最大重量为V,问应该如何选择装入背包中的物品,使得装入背包中物品的总价值最大?代码段#include <iostream>#include <vector>using namespace std;int n; // 物品件数int V; // 背包容量int maxValue = 0; // 最大价值,对于递归(void)一般设置全局变量vector&原创 2021-03-07 15:40:24 · 107 阅读 · 0 评论 -
蓝桥杯day 7_盛最多水容器-双指针与数组转向量
题目描述输入输出格式代码段数组输入转化成向量解决#include <iostream>#include<vector>using namespace std;int maxArea(vector<int>& height) { int l = 0, r = height.size() - 1; int area=0,ans = 0; while (l < r) { ar原创 2021-03-07 15:16:25 · 107 阅读 · 0 评论 -
蓝桥杯day-6 _翻棋子-字符串用字符数组处理的巧妙
问题描述小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:oo*oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作,那么要求:两行等长的字符串,分别表示初始状态和要达到的目标状态。每行的长度<1000输出格式一原创 2021-03-07 14:49:37 · 128 阅读 · 0 评论 -
蓝桥杯day5 _缺失的第一个正数-哈希或搜索
标题:缺失的第一个正数给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。进阶:你可以实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案吗?示例 1:输入:nums = [1,2,0]输出:3示例 2:输入:nums = [3,4,-1,1]输出:2示例 3:输入:nums = [7,8,9,11,12]文 输出:1提示:0 <= nums.length <= 300-231 <= nums[i] &l原创 2021-03-07 14:16:34 · 111 阅读 · 0 评论