- 博客(375)
- 收藏
- 关注
原创 蓝桥杯--历届真题 穿越雷区【第六届】【决赛】【A组】
X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废。 某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征),怎样走才能路径最短? 已知的地图是一个方阵,上面用字母标出了A,B区,其它区都标了正号或负号分别表示正负能量辐射区。 例如: A + - + - - + - - + - + + + - + - + - + B + - + - 坦克车只能水平或垂直方向上移动到相邻的区。 数据格式要求: 输入第一行是
2022-04-07 13:22:45
138
原创 Acwing--885. 求组合数 I
给定 n 组询问,每组询问给定两个整数 a,b请你输出 Cbamod(109+7)的值。输入格式第一行包含整数 n。接下来 n 行,每行包含一组 a 和 b。输出格式共 n 行,每行输出一个询问的解。数据范围1≤n≤100001≤b≤a≤2000输入样例:33 15 32 2输出样例:3101主要是用了一个公式,公式的来源有点类似于动态规划的思想,注意处理边界,即当j==0时表示从i个物品当中选0个物品的方案数为0, c[i][j]=(c.
2022-04-05 21:15:19
829
原创 蓝桥杯--历届真题 砝码称重【第十二届】【省赛】【B组】
题目 2604:蓝桥杯2021年第十二届省赛真题-砝码称重时间限制: 1Sec 内存限制: 128MB 提交: 3205 解决: 1041题目描述你有一架天平和 N 个砝码,这 N 个砝码重量依次是 W1, W2, · · · , WN。请你计算一共可以称出多少种不同的重量?注意砝码可以放在天平两边。输入输入的第一行包含一个整数 N。第二行包含 N 个整数:W1, W2, W3, · · · , WN。输出输出一个整数代表答案。样例输入复制31 4 6.
2022-04-05 19:25:24
1224
原创 蓝桥杯--历届真题 路径【第十二届】【省赛】【B组】
方法1用Floyd算法来写,emm算的很慢但是可以算出来,大概1min出结果。对于不太会写最短路算法的小白很友好。这个题是结果填空题,时间无所谓了🍺时间复杂度为O(n^3),操作次数大概是8*10^9答案:10266837#include<bits/stdc++.h>using namespace std;typedef long long ll;int g[2030][2030];int gcd(int x,int y){ return y?gcd(y,x%y...
2022-04-05 16:16:55
685
原创 蓝桥杯--历届真题 货物摆放【第十二届】【省赛】【B组】
题目的意思就是,给我们一个n,我们将n分解为3个数的乘积。且4=1*2*2,和4=2*1*2视为不同的方案,即排列,不是组合。问一共有多少用不同的分解方式这个题需要我们看一下,n有什么性质发现n=a*b*c,a,b,c必然都是n的约数所以这个题可以先求一下n的所有约数,用vector来存储然后三个for循环暴力来写,如果n=a*b*c ,ans++如何求一个数的约数:Acwing--试除法求约数_wowon~的博客-CSDN博客答案:2430#include&l...
2022-04-05 15:27:01
341
原创 蓝桥杯--历届真题 卡片【第十二届】【省赛】【B组】
#include<bits/stdc++.h>using namespace std;int a[20];int n,m;int main(){ for(int i=1;;i++) { int t=i; while(t) { int x=t%10; a[x]++; t/=10; if(a[x]>2021) { cout<<i-1<<endl; return 0; } }...
2022-04-05 14:41:52
378
原创 蓝桥杯--历届真题 直线【第十二届】【省赛】【B组】
是结果填空题,思路是用两个数学公式1. (y1-y2)=k*(x1-x2); 2. y=k*x+b来计算出所有的k和b放入到结构体里,写个重载排个序(注意我们k的特殊情况为0,有20条直线即x=0,x=1,x=2,x=3......,这个我们先不将其放入结构体里,再最后计算的时候加上就可以了)。for循环看有多少不同的k,b即可。注意double的精度问题,这里我们认定当 两个double数的差>1e-8 时二者为不同数,<=1e-8时,二者为相同的数。🌴答案:402...
2022-04-05 14:37:45
1232
原创 蓝桥杯--历届真题 全球变暖【第九届】【省赛】【A组】(2)
资源限制内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s问题描述 你有一张某海域NxN像素的照片,"."表示海洋、"#"表示陆地,如下所示: ....... .##.... .##.... ....##. ..####. ...###. ....... 其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿。例如上图就有2座岛屿。 由于全球变暖导致了海面上升,科学家预测未来...
2022-04-04 13:55:56
217
原创 蓝桥杯--历届真题 奇怪的数列【第六届】【决赛】【C组】
资源限制内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 从X星截获一份电码,是一些数字,如下: 13 1113 3113 132113 1113122113 .... YY博士经彻夜研究,发现了规律: 第一行的数字随便是什么,以后每一行都是对上一行“读出来” 比如第2行,是对第1行的描述,意思是:1个1,1个3,所以是:1113 第3行,意思是:3个1,1个3,所以是:3113...
2022-04-04 11:23:47
2094
原创 MySQL--学习记录3
1.用 select语句检索数据表中指定字段的数据;投影用 select语句检索数据表中所有字段的数据。1.用 SELECT语句检索数据表中指定字段的数据;投影SELECT 基本语法规则为: SELECT 字段名 FROM 表名;语法规则为: SELECT 字段名1, 字段名2 FROM 表名;2.用 SELECT语句检索数据表中所有字段的数据。语法规则为: SELECT * FROM 表名;请你查询字段 Name和 Salary的内容 请你查询整张表的内容...
2022-04-03 16:12:46
1960
原创 MySQL--学习记录2
1.查看表的详细结构,基本结构语法规则为:SHOW CREATE TABLE 表名; 。show create table jd_emp1;不仅仅可以返回给我们建表时所写的详细语句,而且还可以查看存储引擎和字符编码。2.修改表中的字段名,并修改字段的数据类型。语法规则为: ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型; 。语法规则为: ALTER TABLE 表名 MODIFY 字段名 数据类型; 。3...
2022-04-03 11:33:27
1392
原创 MySQL--学习记录1
目录1.如何连接数据库;2.如何创建数据库。3.在数据库中创建一个表。4.查看表的基本结构5.主键6.多字段联合主键7.给表添加外部关键字。8.给表添加常用的约束。1.如何连接数据库;在操作数据库之前,需要连接它,输入命令:mysql -u用户名 -p密码。2.如何创建数据库。连接上MySQL之后就可以进行数据库的操作了,接下来我们创建一个名为TestDb的数据库:create database TestDb;请注意:数据库名区分大小写。..
2022-04-03 10:54:48
823
原创 Acwing--前缀和,差分的关系
795. 前缀和输入一个长度为 n 的整数序列。接下来再输入 m 个询问,每个询问输入一对 l,r。对于每个询问,输出原序列中从第l 个数到第 r 个数的和。输入格式第一行包含两个整数 n 和 m。第二行包含 n 个整数,表示整数数列。接下来 m 行,每行包含两个整数 l 和 r,表示一个询问的区间范围。输出格式共 m 行,每行输出一个询问的结果。数据范围1≤l≤r≤n1≤n,m≤100000−1000≤数列中元素的值≤1000输入样例:5 32
2022-03-31 19:30:37
145
原创 Acwing--898. 数字三角形(线性DP)
给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 8 8 1 0 2 7 4 44 5 2 6 5输入格式第一行包含整数n,表示数字三角形的层数。接下来n行,每行包含若干整数,其中第i行表示数字三角形第i层包含的整数。输出格式输出一个整数,表示最大的路径数字和。数...
2022-03-31 17:10:34
173
原创 Acwing--背包问题(01,完全,多重,分组)
2. 01背包问题有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<vi,wi≤1
2022-03-31 16:22:20
671
原创 Acwing--859. Kruskal算法求最小生成树(模板)
给定一个 n个点 m 条边的无向图,图中可能存在重边和自环,边权可能为负数。求最小生成树的树边权重之和,如果最小生成树不存在则输出 impossible。给定一张边带权的无向图 G=(V,E),其中 V 表示图中点的集合,E 表示图中边的集合,n=|V|,m=|E|由 V中的全部 n 个顶点和 E 中 n−1条边构成的无向连通子图被称为 G 的一棵生成树,其中边的权值之和最小的生成树被称为无向图 G 的最小生成树。输入格式第一行包含两个整数 n 和 m。接下来 m 行,每行包含三..
2022-03-29 16:41:38
201
原创 Acwing--858. Prim算法求最小生成树(模板)
给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环,边权可能为负数。求最小生成树的树边权重之和,如果最小生成树不存在则输出 impossible。给定一张边带权的无向图 G=(V,E),其中 V 表示图中点的集合,E 表示图中边的集合,n=|V|,m=|E|。由 V 中的全部 n 个顶点和 E 中n−1 条边构成的无向连通子图被称为 G 的一棵生成树,其中边的权值之和最小的生成树被称为无向图 G 的最小生成树。输入格式第一行包含两个整数 n 和 m。接下来 m 行,每行包含
2022-03-29 13:44:08
221
原创 Acwing--854. Floyd求最短路(模板)
给定一个n个点m条边的有向图,图中可能存在重边和自环,边权可能为负数。再给定k 个询问,每个询问包含两个整数x和y,表示查询从点x到点y的最短距离,如果路径不存在,则输出impossible。数据保证图中不存在负权回路。输入格式第一行包含三个整数 n,m,k。接下来m行,每行包含三个整数 x,y,z,表示存在一条从点x到点y的有向边,边长为z。接下来k行,每行包含两个整数x,y,表示询问点x到点y的最短距离。输出格式共...
2022-03-28 17:35:30
208
转载 Acwing--852. spfa判断负环
给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环, 边权可能为负数。请你判断图中是否存在负权回路。输入格式第一行包含整数 n 和 m。接下来m行每行包含三个整数 x,y,z,表示存在一条从点x到点y的有向边,边长为z。输出格式如果图中存在负权回路,则输出 Yes,否则输出 No。数据范围1≤n≤20001≤m≤10000图中涉及边长绝对值均不超过10000输入样例:3 31 2 -12 3 43 1 -4输出样例:Y...
2022-03-28 14:08:53
195
原创 Acwing--851. spfa求最短路(模板)
给定一个n 个点m条边的有向图,图中可能存在重边和自环,边权可能为负数。请你求出1 号点到n 号点的最短距离,如果无法从1 号点走到n 号点,则输出impossible。数据保证不存在负权回路。输入格式第一行包含整数n 和m。接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。输出格式输出一个整数,表示1号点到n号点的最短距离。如果路径不存在,则输出impossible。数据范围1≤n,m...
2022-03-28 12:25:02
577
原创 Acwing--845. 八数码(BFS)
在一个 3×3 的网格中,1∼8这 8 个数字和一个 x 恰好不重不漏地分布在这 3×3 的网格中。例如:1 2 3x 4 67 5 8在游戏过程中,可以把 x 与其上、下、左、右四个方向之一的数字交换(如果存在)。我们的目的是通过交换,使得网格变为如下排列(称为正确排列):1 2 34 5 67 8 x例如,示例中图形就可以通过让 x 先后与右、下、右三个方向的数字交换成功得到正确排列。交换过程如下:1 2 3 1 2 3 1 2 3 1 2
2022-03-26 18:25:44
177
原创 Acwing--843. n-皇后问题(DFS全排列思路,直接思路)
n−皇后问题是指将n个皇后放在n×n 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。现在给定整数n,请你输出所有的满足条件的棋子摆法。输入格式共一行,包含整数n。输出格式每个解决方案占n行,每行输出一个长度为n的字符串,用来表示完整的棋盘状态。其中.表示某一个位置的方格状态为空,Q表示某一个位置的方格上摆着皇后。每个方案输出完成后,输出一个空行。注意:行末不能有多余空格。输出方案的顺序任意,只要不...
2022-03-25 19:10:33
215
原创 Acwing--794. 高精度除法(大数除法)
给定两个非负整数(不含前导0)A,B请你计算A/B的商和余数。输入格式共两行,第一行包含整数A,第二行包含整数B。输出格式共两行,第一行输出所求的商,第二行输出所求余数。数据范围1≤A的长度≤1000001≤B≤10000B一定不为0输入样例:72输出样例:31#include<bits/stdc++.h>using namespace std;vector<int> div(vector<in...
2022-03-25 16:56:13
272
原创 Acwing--792. 高精度减法(大数减法)
给定两个正整数(不含前导0),计算它们的差,计算结果可能为负数。输入格式共两行,每行包含一个整数。输出格式共一行,包含所求的差。数据范围1≤整数长度≤105输入样例:3211输出样例:21A-B,分为两种情况。1. A>=B,那么结果为A-B 2.A<B 那么结果为 - (B-A)对于Ai-Bi-t 也分为两种情况1.>=0: Ai-Bi-t2.<0 (需要借位): Ai-Bi...
2022-03-25 16:24:28
373
原创 51NOD--2206.低买高卖(贪心)
考虑股票市场上的某一只股票,一共有n 天。对于第i天,B 君知道股票的价格是每单位a[i]元在每一天,B君可以选择买入一个单位的股票,或卖出一个单位的股票,或者什么都不做。刚开始B君有无穷多的钱,但是没有任何股票。问n天之后B君最多可以赚多少钱。输入第一行一个整数n表示天数。(1 <= n <= 200000,1 <= a[i] <= 10000)接下来一行n个整数,表示每天的价钱。输出一行一个整数表示最多可以赚的钱数。数据范围...
2022-03-25 15:07:06
248
原创 Acwing--791. 高精度加法(大数加法)
给定两个正整数(不含前导0),计算它们的和。输入格式共两行,每行包含一个整数。输出格式共一行,包含所求的和。数据范围1≤整数长度≤100000输入样例:1223输出样例:35用vector来存储是因为得到长度可以直接用size很方便✨#include<bits/stdc++.h>using namespace std;int main(){ string a,b; cin>>a>>b;..
2022-03-24 19:42:25
566
原创 Vjudge--做任务一
B君和m个人一起,要完成n个任务,在这个题中,m个人会看着这B君,自己什么都不做。第i个任务有一个开始时间s[i]和结束时间e[i](保证s[i]<=e[i]),一个人完成两个任务的时间区间,不能有交集,但是可以首尾相连。(参考样例)换句话说,如果一个人依次完成了(s[1], e[1]) (s[2], e[2]) (s[3], e[3])这3个任务,那么这3个任务需要满足s[1]<=e[1]<=s[2]<=e[2]<=s[3]<=e[3]。同一个任务只能完成一
2022-03-24 17:59:38
310
原创 Acwing--793. 高精度乘法(大数乘法1)
给定两个非负整数(不含前导 0) A 和 B,请你计算 A×B 的值。输入格式共两行,第一行包含整数 A,第二行包含整数 B。输出格式共一行,包含 A×B 的值。数据范围1≤A的长度≤1000000≤B≤10000输入样例:23输出样例:6因为A很大,但是b很小。所以这么计算:举个栗子 求123*45 t:进位,初始化为0t=t+(3*45) t%10=5 t=t/10=13t=t+(2*45)=13+90=103...
2022-03-24 17:11:31
646
2
原创 Acwing--842. 排列数字(dfs模板)
给定一个整数 n,将数字 1∼n 排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。输入格式共一行,包含一个整数 n。输出格式按字典序输出所有排列方案,每个方案占一行。数据范围1≤n≤7输入样例:3输出样例:1 2 31 3 22 1 32 3 13 1 23 2 1#include<bits/stdc++.h>using namespace std;int n;int book[10];//存.
2022-03-24 15:57:46
496
原创 Acwing--95. 费解的开关(递推,位运算)
你玩过“拉灯”游戏吗?25 盏灯排成一个5×5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。我们用数字1表示一盏开着的灯,用数字0表示关着的灯。下面这种状态1011101101101111000011011在改变了最左上角的灯的状态后将变成:0111111101101111000011011再改变它正中间的...
2022-03-23 13:53:54
264
原创 Acwing--836. 合并集合(并查集模板)
一共有n个数,编号是1∼n,最开始每个数各自在一个集合中。现在要进行m个操作,操作共有两种:M a b,将编号为a和b的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作; Q a b,询问编号为a和b的两个数是否在同一个集合中;输入格式第一行输入整数n和m。接下来m行,每行包含一个操作指令,指令为M a b或Q a b中的一种。输出格式对于每个询问指令Q a b,都要输出一个结果,如果a和b在同一集合内,则...
2022-03-22 13:44:25
156
原创 Acwing--831. KMP字符串(KMP模板)
给定一个模式串S,以及一个模板串P,所有字符串中只包含大小写英文字母以及阿拉伯数字。模板串P在模式串S中多次作为子串出现。求出模板串P在模式串S中所有出现的位置的起始下标。输入格式第一行输入整数N,表示字符串P的长度。第二行输入字符串P。第三行输入整数M,表示字符串S的长度。第四行输入字符串S。输出格式共一行,输出所有出现位置的起始下标(下标从0开始计数),整数之间用空格隔开。数据范围1≤N≤1051≤M≤106输入样...
2022-03-21 19:17:47
257
原创 Acwing--789. 数的范围(二分模板)
给定一个按照升序排列的长度为n的整数数组,以及q个查询。对于每个查询,返回一个元素k的起始位置和终止位置(位置从0开始计数)。如果数组中不存在该元素,则返回-1 。输入格式第一行包含整数n和q,表示数组长度和询问个数。第二行包含n个整数(均在 1∼10000范围内),表示完整数组。接下来q 行,每行包含一个整数k,表示一个询问元素。输出格式共q行,每行包含两个整数,表示所求元素的起始位置和终止位置。如果数组中不存在该元素,则返回-1 ...
2022-03-21 13:31:02
159
原创 Acwing--798. 差分矩阵(模板)
输入一个 n 行 m 列的整数矩阵,再输入 q 个操作,每个操作包含五个整数 x1,y1,x2,y2,c,其中 (x1,y1) 和 (x2,y2) 表示一个子矩阵的左上角坐标和右下角坐标。每个操作都要将选中的子矩阵中的每个元素的值加上 c。请你将进行完所有操作后的矩阵输出。输入格式第一行包含整数 n,m,q。接下来 n 行,每行包含 m 个整数,表示整数矩阵。接下来 q 行,每行包含 55 个整数 x1,y1,x2,y2,c,表示一个操作。输出格式共 n 行,每行 m 个整数
2022-03-20 17:45:28
122
原创 Acwing--797. 差分(模板)
输入一个长度为 n 的整数序列。接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数 n 和 m。第二行包含 n 个整数,表示整数序列。接下来 m 行,每行包含三个整数l,r,c,表示一个操作。输出格式共一行,包含 n 个整数,表示最终序列。数据范围1≤n,m≤1000001≤l≤r≤n−1000≤c≤1000−1000≤整数序列中元素的值≤1000
2022-03-20 17:00:48
267
原创 Acwing--796. 子矩阵的和(模板)
输入一个 n 行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数 x1,y1,x2,y2表示一个子矩阵的左上角坐标和右下角坐标。对于每个询问输出子矩阵中所有数的和。输入格式第一行包含三个整数 n,m,q。接下来 n 行,每行包含 m 个整数,表示整数矩阵。接下来 q 行,每行包含四个整数 x1,y1,x2,y2表示一组询问。输出格式共 q 行,每行输出一个询问的结果。数据范围1≤n,m≤10001≤q≤2000001≤x1≤x2≤n1≤y1≤y2≤m−
2022-03-20 16:23:46
183
原创 Acwing--795. 前缀和(模板)
输入一个长度为 n 的整数序列。接下来再输入 m 个询问,每个询问输入一对 l,r。对于每个询问,输出原序列中从第 l 个数到第 r 个数的和。输入格式第一行包含两个整数 n 和 m。第二行包含 n 个整数,表示整数数列。接下来 m 行,每行包含两个整数 l 和 r,表示一个询问的区间范围。输出格式共 mm 行,每行输出一个询问的结果。数据范围1≤l≤r≤n1≤n,m≤100000−1000≤数列中元素的值≤1000输入样例:5 32 1 3 6 4
2022-03-20 15:53:39
137
原创 Acwing--2816. 判断子序列(双指针)
给定一个长度为 n 的整数序列 a1,a2,…,an以及一个长度为 m 的整数序列 b1,b2,…,bm。请你判断 a 序列是否为 b 序列的子序列。子序列指序列的一部分项按原有次序排列而得的序列,例如序列{a1,a3,a5} 是序列 {a1,a2,a3,a4,a5} 的一个子序列。输入格式第一行包含两个整数 n,m。第二行包含 n 个整数,表示 a1,a2,…,an。第三行包含 m 个整数,表示 b1,b2,…,bm。输出格式如果 a序列是 b 序列的子序列,输出一行 Y.
2022-03-20 15:25:19
223
原创 Acwing--800. 数组元素的目标和(双指针)
给定两个升序排序的有序数组 A 和 B,以及一个目标值 x。数组下标从 0 开始。请你求出满足 A[i]+B[j]=x的数对 (i,j)。数据保证有唯一解。输入格式第一行包含三个整数 n,m,x分别表示 A 的长度,B 的长度以及目标值 x。第二行包含 n 个整数,表示数组 A。第三行包含 m 个整数,表示数组 B。输出格式共一行,包含两个整数 i和 j。数据范围数组长度不超过105。同一数组内元素各不相同。1≤数组元素≤109输入样例:4 5 ..
2022-03-20 15:04:19
389
1
原创 Acwing--799. 最长连续不重复子序列(双指针)
给定一个长度为n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。输入格式第一行包含整数 n。第二行包含 n 个整数(均在 0∼105 范围内),表示整数序列。输出格式共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。数据范围1≤n≤105输入样例:51 2 2 3 5输出样例:3双指针算法用于优化时间复杂度,往往可以把O(n^2)的优化为O(2n),先想暴力怎么写,再观察i,j是否具有单调性考虑使用双指针来优化。...
2022-03-20 14:43:13
221
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅