![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蓝桥杯
文章平均质量分 92
QLUGCL
每一步都算数
展开
-
蓝桥杯C/C++ AB组辅导课
文章目录递归与递推递归与递推从 1~n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。通过二进制的特性枚举所有方案。此特性还可以用于枚举某一问题的所有情况。for(long long i=0;i<1<<n;i++){ for(long long j=0;j<n;j++){ if(i>>j&1){//i右移j位判断,第j+1位是否为1; } } } 把 1~n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。原创 2020-11-12 21:59:16 · 2909 阅读 · 8 评论 -
树状数组模板
//求和还有更改任意一点更加迅速。 int lowbit(int n){ return n&-n;}void add(int x,int v){ //更新的时候只需要更新对应的等级 for(int i=x;i<=n;i+=lowbit(i))tr[i]+=v;}// 根据对应的等级递减进行求和 int query(int x){ int res=0; for(int i=x;i;i-=lowbit(i))res+=tr[i]; return res;}...原创 2020-10-28 19:13:54 · 110 阅读 · 0 评论 -
机器人跳跃问题(long long 数据范围越界)
机器人正在玩一个古老的基于DOS的游戏。游戏中有N+1座建筑——从0到N编号,从左到右排列。编号为0的建筑高度为0个单位,编号为 i 的建筑高度为H(i)个单位。起初,机器人在编号为0的建筑处。每一步,它跳到下一个(右边)建筑。假设机器人在第k个建筑,且它现在的能量值是E,下一步它将跳到第k+1个建筑。如果H(k+1)>E,那么机器人就失去H(k+1)-E的能量值,否则它将得到E-H(k+1)的能量值。游戏目标是到达第N个建筑,在这个过程中能量值不能为负数个单位。现在的问题是机器人至少原创 2020-09-27 20:48:28 · 356 阅读 · 0 评论 -
移动距离(计数开始从1变为0,方便列号求差)
X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为 1,2,3…当排满一行时,从下一行相邻的楼往反方向排号。比如:当小区排号宽度为 6 时,开始情形如下:1 2 3 4 5 612 11 10 9 8 713 14 15 …我们的问题是:已知了两个楼号 m 和 n,需要求出它们之间的最短移动距离(不能斜线方向移动)。输入格式输入共一行,包含三个整数 w,m,n,w 为排号宽度,m,n 为待计算的楼号。输出格式输出一个整数,表示 m,n 两楼间最短移动距离。原创 2020-09-21 22:18:46 · 190 阅读 · 0 评论 -
倍数问题(余数的骚操作)
众所周知,小葱同学擅长计算,尤其擅长计算一个数是否是另外一个数的倍数。但小葱只擅长两个数的情况,当有很多个数之后就会比较苦恼。现在小葱给了你 n 个数,希望你从这 n 个数中找到三个数,使得这三个数的和是 K 的倍数,且这个和最大。数据保证一定有解。输入格式第一行包括 2 个正整数 n, K。第二行 n 个正整数,代表给定的 n 个数。输出格式输出一行一个整数代表所求的和。数据范围1≤n≤105,1≤K≤103,给定的 n 个数均不超过 108输入样例:4 31 2 3 4输原创 2020-09-08 20:38:46 · 1162 阅读 · 0 评论 -
K倍区间(数组多个区间求和)
给定一个长度为 N 的数列,A1,A2,…AN,如果其中一段连续的子序列 Ai,Ai+1,…Aj 之和是 K 的倍数,我们就称这个区间 [i,j] 是 K 倍区间。你能求出数列中总共有多少个 K 倍区间吗?输入格式第一行包含两个整数 N 和 K。以下 N 行每行包含一个整数 Ai。输出格式输出一个整数,代表 K 倍区间的数目。数据范围1≤N,K≤100000,1≤Ai≤100000输入样例:5 212345输出样例:6题解首先需要找连续的区间且是k的倍数,于是双重fo原创 2020-09-06 22:31:44 · 822 阅读 · 0 评论 -
第十届蓝桥杯省赛 后缀表达式(思维题)
给定 N 个加号、M 个减号以及 N+M+1 个整数 A1,A2,⋅⋅⋅,AN+M+1,小明想知道在所有由这 N 个加号、M 个减号以及 N+M+1 个整数凑出的合法的后缀表达式中,结果最大的是哪一个?请你输出这个最大的结果。例如使用 123+−,则 “23+1−” 这个后缀表达式结果是 4,是最大的。输入格式第一行包含两个整数 N 和 M。第二行包含 N+M+1 个整数 A1,A2,⋅⋅⋅,AN+M+1。输出格式输出一个整数,代表答案。输入样例:1 11 2 3输出样例:4题解原创 2020-09-05 14:46:54 · 338 阅读 · 0 评论 -
暴力循环的技巧
小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。输入格式两个正整数 n,m,表示每种包装中糖的颗数。输出格式一个正整数,表示最大不能买到的糖数。数据范围2≤n,m≤1000,原创 2020-09-04 19:04:05 · 788 阅读 · 0 评论 -
整数拼接(记忆化更新)
给定一个长度为 n 的数组 A1,A2,⋅⋅⋅,An。你可以从中选出两个数 Ai 和 Aj(i 不等于 j),然后将 Ai 和 Aj 一前一后拼成一个新的整数。例如 12 和 345 可以拼成 12345 或 34512。注意交换 Ai 和 Aj 的顺序总是被视为 2 种拼法,即便是 Ai=Aj 时。请你计算有多少种拼法满足拼出的整数是 K 的倍数。输入格式第一行包含 2 个整数 n 和 K。第二行包含 n 个整数 A1,A2,⋅⋅⋅,An。输出格式一个整数代表答案。数据范围1≤n≤1原创 2020-08-19 12:36:47 · 1962 阅读 · 3 评论