自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Ubuntu18.04下Carla安装——经验史

Ubuntu下的Carla安装

2022-12-26 13:07:14 1855 5

原创 AS工具 养成笔记

1.如何在AS中关闭版本控制?在File-Settings-Version Control根目录下,置VCS为null即可2.如何在AS中导入Gitee项目选择一个URL即可,Directory会根据选择的URL自动创建,应该也可以手动选择

2022-04-16 14:37:47 234

原创 砝码称重

题目和题解这篇博客浅显易懂,特此记录。dp[i][j]表示的是取钱(i+1)个砝码(砝码从0开始编号),重量j是否可以被称出,若能,则置1

2022-03-29 10:14:19 351

原创 左child右兄弟

题目题解代码源自于他人的博客,仅此作为个人笔记记录。递归思路就是,找到具有最大高度的那个子节点(其本身也是一个树,有高度),把这个孩子放在最后一位,就是题目所求的情况。所以最终答案就是父节点的子节点数量 + 具有最大高度的孩子的高度。例如,在样例中,父节点1的孩子节点有2,3,4,它们的高度分别为1,0,0,所以2是具有最大高度的子节点,再加上父节点本身有三个孩子,所以答案就是1 + 3,即为4。上图表示:转换后最大高度的形态(当然,最高形态可能不止一种,例如上图中的3,4可以调换位置,

2022-03-28 09:47:45 1207

原创 火星人

题目直接使用next_permutation函数即可,next_permutation(num,num+n)函数是对数组num中的前n个元素进行全排列,同时并改变num数组的值。题解

2022-03-27 15:10:02 285

原创 C语言中编译器无法识别to_string时的解决办法

使用itoa(int value, char *string,int radix)函数,有三个参数,第一个是要被转换的数字,第二个是存储转换后的字符串,第三个是进制,一般选择10#include <bits/stdc++.h>using namespace std;string s;int main() { s=""; for(int i=1;i<=200;i++){ char t[100]; itoa(i, t, 10); s += t; }

2022-03-19 11:15:54 1169

原创 字母阵列

FOAIQNALWIKEGNICJWAOSXDHTHZPOLGYELORAUHOHCZIERPTOOJUITQJCFNIYYQHSBEABBQZPNGYQTCLSKZFCYWDGOAIADKLSNGJGSOZTQKCCSDWGUWAUOZKNILGVNLMCLXQVBJENIHIVLRPVVXXFTHQUXUAVZZOFFJHYLMGTLANQIAOQQILCDCJERJASNCTLYGRMHGFTSDFYTLVIBHKLJVVJUDMKGJZGNNSTPVLCKTOFMUEUFSVQIAUV...

2022-03-17 08:15:38 712

原创 借教室(P1083)

题目此题是典型的区间修改问题,采用差分数组进行优化。在判断是否满足条件时,采用的是新构建一个need数组的方法,比较其与要求教室的数量大小,而不是作差判负。采用二分法进行优化。老样子,注意边界条件。mid = (l + r) / 2,而不是 mid = (l + r + 1) / 2,具体如何选择,取决于边界收缩条件,本题中l = mid +1 , r = mid 决定了不能是 mid = (l + r + 1) / 2,否则有可能会陷入死循环(对所有测试数据而言,有的测试数据不会死循环,有..

2022-03-14 09:47:04 480

原创 分配口罩

题目本题总分:10 分【问题描述】某市市长获得了若干批口罩,每一批口罩的数目如下:(如果你把以下文 字复制到文本文件中,请务必检查复制的内容是否与文档中的一致。在试题目 录下有一个文件 mask.txt,内容与下面的文本相同)9090400849940059268008547000495820044226005751200417560063096005865200660440046350001066340080872004554000...

2022-03-11 19:29:34 164

原创 抓住那头牛

题目尽管简单,但是忘了写边界条件,翻车了,记录一下。#include <bits/stdc++.h>using namespace std;const int N = 1e7 + 10;int t, x, y;struct node { int x, step; // 一定得有这个step属性,步数连带着走 node(int x_, int step_) { x = x_; step = step_; }};queue<node> qq

2022-03-07 16:25:23 52

原创 剪邮票

剪邮票如【图1.jpg】, 有12张连在一起的12生肖的邮票。现在你要从中剪下5张来,要求必须是连着的。(仅仅连接一个角不算相连)比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合格的剪取。请你计算,一共有多少种不同的剪取方法。请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。思路:全排列 + 连通性判断,我用的bfs判断的连通性注意:由于重复计数最后的结果需要除以5!#include &l.

2022-03-03 20:46:18 136

原创 修改数组

题目有三个版本,分别是纯暴力,优化后的暴力,并查集解法,分别能过40%,90%,100%的测试点。纯暴力版本,过了40%#include <bits/stdc++.h>using namespace std;const int N = 1e5 + 10;int a[N];int n;int main() { cin >> n; for (int i = 0; i < n; i++) { cin >> a[i]; } for

2022-03-03 10:58:45 209

原创 子串分值和

蓝桥杯真题 子串分值和

2022-03-02 09:30:13 99

原创 Dijkstra最短路算法

该算法适用于正权值的图,用于解决单源点最短路径问题。用到了贪心的思想,需要一个dis数组来保存源点到其余各顶点的最短距离,一共(n-1)轮大循环,每次大循环都要确定一个离源点最近的顶点,通过该顶点来进行“松弛”,该顶点作为中转点,看其余顶点通过该中转点是否比直接到源点更近。...

2022-02-28 17:20:00 143

原创 Floyd最短路算法

该算法为多源点最短路径算法,可以找出任意两个节点之间的最短路径以及最短距离,但是代价也是巨大的,时间复杂度为O(n^3),核心是三重for循环,第一重指的是中转节点,第二重指的是起始节点,第三重是终止节点,图由邻接矩阵的形式存储。外加一个存储当前最短路的下一个节点的矩阵的数据结构,由该矩阵,可以找出最短路径,以及存储一个最短路径距离的矩阵,可直接找出最短路径距离。/*70 12 1000 1000 1000 16 1412 0 10 1000 1000 7 10001000 10 0 3 5

2022-02-27 11:11:00 566

原创 七段码(bfs数连通块的个数)

题目#include <bits/stdc++.h>using namespace std;int a[10][10];int ans = 0;int b[10]; // 亮暗与否 int vis[10];queue<int> qq;void bfs(int x) { // 对第x个二极管进行bfs搜索 qq.push(x); vis[x] = 1; while (!qq.empty()) { int t = qq.front(); qq.

2022-02-25 15:25:39 407

原创 迷宫(bfs找最短路径)

题目#include <bits/stdc++.h>using namespace std;string ss;int mp[60][60];int vis[60][60];int dx[] = {1,0,0,-1};int dy[] = {0,-1,1,0};char dir[] = {'D', 'L', 'R', 'U'};struct node { int x, y; int step; string path; node() {} node(int

2022-02-23 16:20:04 521

原创 跳蚱蜢(bfs)

博客这篇博客的思路很浅显易懂,特此记录。

2022-02-23 16:17:38 146

原创 python解决大数问题

直接使用C++/java,由于F(2020)很大,会造成溢出,而py不会def gcd(a, b): if (b == 0): return a else: return gcd(b, a%b)f = [0 for i in range(2030)]f[1] = 1f[2] = 1for i in range(3,2021): f[i] = f[i-2] + f[i-1]print(gcd(f[2020], f[520]))C++代码如下,略显麻烦...

2022-02-21 20:52:18 1035

原创 gcd与lcm

__gcd(a, b)函数:求a,b的最大公约数特殊情形:__gcd(0,b) = b。可用于某些特判情形。lcm函数需要自己写,C++并不自带,表示a,b的最小公倍数int lcm(int a, int b) { return a / __gcd(a,b) * b; // 先除后乘,可以避免a*b的结果过大导致溢出 } 题目1——等差数列(gcd)#include <bits/stdc++.h>using namespace std;const in..

2022-02-21 20:10:39 816

原创 车站

题目由于计算机不能识别方程,故而这题的关键点在与模拟出系数,进而求得参数的值,最终求得结果。#include <iostream>using namespace std;struct node{ int c, d; // a,b的系数 } in[30], out[30], peo[30]; int a, b, n, m, x, x1; // b为第二个车站的上车人数 void init() { in[1].c = 1, in[1].d = 0; out[1].c

2022-02-18 16:51:10 233

原创 路径之谜(dfs)

题目自己首先写了一个dfs,只能过一个测试点,后来发现我是按照所给样例的大小来开数组的,把数组开到符合题目要求后,第二个测试点也通过了,但是剩下了测试点依旧很多都超时,于是加上了两个剪枝操作,能够100%通过所有测试点。#include <bits/stdc++.h>using namespace std;int n;int path[25][25], vis[25][25];int north[25], west[25];int north_tru[25], west_t

2022-02-12 14:48:45 677

原创 剪格子(dfs遍历图)

题目这道题用深搜存在一定的不合理之处,例如,可能会将图分为不止两部分,可这时依旧会记录下来该剪法,不过应付蓝桥杯的评测系统是够了。写法1写法1的优点是首先考虑总和是否为偶数,如果为奇数,是不可能分为两部分的。写法2写法2的优点是加上了step属性,更加简洁高效。...

2022-02-12 11:48:05 221

原创 前缀和和差分

前缀和数组可以用来处理多次区间求和,构造前缀和数组的复杂度为O(n),查询区间和的复杂度为O(1)。若要求区间[l,r]的和,直接a[r] - a[l-1]即可。(a为前缀和数组)差分数组是前缀和的逆运算,其用来处理多次区间修改,其复杂度为O(n) + O(m) ,暴力的复杂度为O(n*m) 。/*6 21 2 3 4 5 62 3 23 5 -5注:2 3 2表示[2,3]区间范围内的数+2 输出修改后的原数组 */#include <iostream>using

2022-02-11 13:40:58 376

原创 ST算法(RMQ问题)

预处理 时间复杂度为O(nlogn),查询时间O(1)。视频详解#include <iostream>#include <cmath> #include <algorithm>using namespace std;const int N = 1e5 + 10;int f[N][18]; // 2^17 = 131072 > 100000int n, m;int query(int l, int r) { int d = log.

2022-02-10 17:44:09 333

原创 逆序对问题

三种解决方法暴力 分治 树状数组逆序对的三种求法这篇博客写得很不错,分治法网上有一大堆,这里仅仅对树状数组求法进行补充。对于一个序列5 2 1 4 3,开一个数组d,d[i]表示i出现的次数。这个算法需要对一段区间内进行求和,使用树状数组可以加速这个过程。如果对树状数组算法不太明白,可以参考这个视频,讲得很清楚,也很好理解。树状数组视频讲解...

2022-02-10 12:44:01 158

原创 树状数组(基础)

前言在介绍树状数组之前,需要了解一个函数lowbit(),其是求一个数的二进制最低次幂的值,这个函数是自己手写的,不是编译器自带的。例如,5的二进制表示为101,那么lowbit(5)就是101的最后一位,即1;10的二进制表示为1010,那么lowbit(10)就是1010的最后两位,即10。接下来介绍lowbit函数的实现原理。以0110(设为x)为例,将其取反再加一,结果为1010(由于在计算机系统中,负数是由补码表示的,而补码就是由正数的原码取反再加一得来,故1010等于-x),0110 &

2022-02-08 16:07:10 367

原创 全球变暖(dfs)

题目麻了麻了,dfs杀我。// 通过v数组来控制陆地所在的岛屿,搜索到第一个陆地时,其会遍历到该岛屿其他的所有陆地 // 岛屿中只要有一个陆地块四周都是陆地块,那么其不会被淹没// 看岛屿的第一个陆地块就可以判断其是否会被淹没 (因为深搜的过程会遍历每一个陆地块) #include<iostream> using namespace std;const int N = 1e3 + 10;int n;char mp[N][N];int v[N][N]; in.

2022-02-07 21:46:40 293

原创 方格分割(dfs)

博客视频讲解看这篇博客和视频的前四分半钟,就已经完全可以理解了。

2022-02-06 23:39:59 125

转载 正则问题(蓝桥杯真题)

题目以下代码来源于他人博客代码来源对于程序的几点解释:每个Fun函数都有各自的一个x,不是大家共用的x,x放在函数体前面才是全局变量 对于非第一个'|'号,y表示'|'号左边的a的数量,x表示'|'右边的a的数量。y就是用来记录'|'左边的a的数量,然后x接着去找'|'号右边有多少个a 当遇到'('时,需要在当前已经找到的a的个数的基础上再加上这一组'()'里所包含的a的数目#include<bits/stdc++.h> using namespace std;int .

2022-02-06 22:28:55 113

原创 寒假作业(dfs)

现在小学的数学题目也不是那么好玩的。看看这个寒假作业:□ + □ = □□ - □ = □□ × □ = □□ ÷ □ = □每个方块代表1~13中的某一个数字,但不能重复。比如:6 + 7 = 139 - 8 = 13 * 4 = 1210 / 2 = 5以及:7 + 6 = 139 - 8 = 13 * 4 = 1210 / 2 = 5就算两种解法。(加法,乘法交换律后算不同的方案)你一共找到了多少种方案?请填写表示方案数目的整数。注意:你提交的应该是一个整数,.

2022-02-05 23:18:49 151

原创 一元三次方程的求解(二分法)

题目

2022-02-05 15:42:39 2177

原创 跳石头(二分法)

题目题解如下,如果觉得晦涩难懂的小伙伴可以去看B站上的这个视频,讲得比较清楚跳石头视频讲解#include<bits/stdc++.h>using namespace std;const int n = 5e4 + 10;int L, N, M;int a[n]; bool check(int step) { //最小跳step距离 int cnt = 0, pre = 0; // 当前石头i的前一块石头的编号 for (int i = 1; i <=

2022-02-05 10:47:44 4239 2

原创 分巧克力(二分法,且注意避免边界问题)

儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:  1. 形状是正方形,边长是整数  2. 大小相同  例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。  当然小朋友们都希望得到的巧克力尽可能大,你能帮小Hi计算出最大的边长是多少么?输入格...

2022-02-03 16:51:00 2001

原创 二分法(手写和STL自带)

手写二分题目如下:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例一:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例二:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1

2022-02-03 14:03:35 883

原创 统计数字(蓝桥杯题库535)

题目描述某次科研调查时得到了 n 个自然数,每个数均不超过 1.5*10^9。已知不相同的数不超过 10^4个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。输入描述第 1 行是整数 n,表示自然数的个数。第 2 ~ n+1行每行一个自然数。其中,1≤n≤2×10^5,每个数均不超过1.5*10^9。输出描述输出 m 行( m 为 n 个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一

2022-02-03 10:36:28 1384 1

原创 拼数(排序)

题目描述设有n个正整数 a1​…an​,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。输入描述第一行有一个整数,表示数字个数n。第二行有nn个整数,表示给出的n个整数 ai​。中,1≤n≤20,1≤ai​≤109。输出描述输出一个正整数,表示最大的整数输入输出样例示例 1输入313 312 343输出34331213示例 2输入47 13 4 246输出74246...

2022-02-02 16:43:14 1141

原创 灌溉(BFS)

灌溉 bfs

2022-01-31 22:23:52 85

空空如也

空空如也

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

TA关注的人

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