蓝桥杯真题
ღ江晚吟
如果浮生若梦,万事无常,最终都归于尘土,那么也许我们的雄心壮志不过徒然为荒诞不经的玩笑而已。如果我们无可救药地执着于自己的意义,或许也只能安于自身的可笑。
展开
-
等差数列(最大公约数)
思路a a+d a+2d a+3d a+4d a+5d a+6d则只要求最大公约数 d源码#include<bits/stdc++.h>using namespace std;//a a+d a+2d a+3d a+4d a+5d a+6d//则只要求最大公约数 d int gcd(int a,int b){ if(b==0) return a; else { return gcd(b,a%b); }}const int N=100010;int .原创 2021-04-06 16:21:34 · 208 阅读 · 0 评论 -
后缀表达式
思路思路: 如果全是加号,答案就是所有数字直接相加。 如果存在减号: 如果全是正数,那么至少有一个被减去,所以把最小的那个减去即可。 如果有正有负,那么所有正数匹配正号,所有负数匹配负号,因此将它们的绝对值直接相加 (...+....-(+...+...)) 如果全是负数,那么除了维持一个最大的负数(因为负数越大它的绝对值越小)为负数之后外,其他的全部翻正。(...+...-(...+...-...+))源码#include<bits/stdc++.h>/*思路.原创 2021-04-05 20:42:03 · 363 阅读 · 0 评论 -
1239. 乘积最大
链接:乘积最大# 整体思路该题的题解是整理了一下 y总视频里面讲解思路,希望对看完视频还不大理解的同学有点帮助首先我们知道 如果 k == n ,那么就证明所有的数字是全部都选, 如果 k < n , 那么就要思考怎样去选择了:1.k 如果是偶数的话,选出来的结果一定是非负数 , 原因如下: (1) # 负数的个数是偶数个的话,负负得正,那么一定是非负数 (2) # 负数的个数如果是奇数个的话,那么我们就只选偶原创 2021-04-05 19:34:25 · 151 阅读 · 0 评论 -
蓝桥杯省赛真题-最大比例
最大比例X星球的某个大奖赛设了M级奖励。每个级别的奖金是一个正整数。并且,相邻的两个级别间的比例是个固定值。也就是说:所有级别的奖金数构成了一个等比数列。比如:16,24,36,54其等比值为:3/2现在,我们随机调查了一些获奖者的奖金数。请你据此推算可能的最大的等比值。输入格式:第一行为数字 N (0<N<100),表示接下的一行包含N个正整数第二行N个正整数Xi(Xi<1 000 000 000 000),用空格分开。每个整数表示调查到的某人的奖金数额要求输出:原创 2020-08-14 17:23:23 · 624 阅读 · 0 评论 -
蓝桥杯省赛真题-交换瓶子
交换瓶子有N个瓶子,编号 1 ~ N,放在架子上。比如有5个瓶子:2 1 3 5 4要求每次拿起2个瓶子,交换它们的位置。经过若干次后,使得瓶子的序号为:1 2 3 4 5对于这么简单的情况,显然,至少需要交换2次就可以复位。如果瓶子更多呢?你可以通过编程来解决。输入格式为两行:第一行: 一个正整数N(N<10000), 表示瓶子的数目第二行:N个正整数,用空格分开,表示瓶子目前的排列情况。输出数据为一行一个正整数,表示至少交换多少次,才能完成排序。例如,输入:53原创 2020-08-14 15:44:00 · 267 阅读 · 0 评论 -
蓝桥杯省赛真题-四平方和
四平方和四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多4个正整数的平方和。如果把0包括进去,就正好可以表示为4个数的平方和。比如:5 = 0^2 + 0^2 + 1^2 + 2^27 = 1^2 + 1^2 + 1^2 + 2^2(^符号表示乘方的意思)对于一个给定的正整数,可能存在多种平方和的表示法。要求你对4个数排序:0 <= a <= b <= c <= d并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法原创 2020-08-14 15:14:42 · 347 阅读 · 0 评论 -
蓝桥杯省赛真题-剪邮票
剪邮票如【图1.jpg】, 有12张连在一起的12生肖的邮票。现在你要从中剪下5张来,要求必须是连着的。(仅仅连接一个角不算相连)比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合格的剪取。请你计算,一共有多少种不同的剪取方法。请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。1.思路首先把题目分成两部分:1.用全排列12选5个数2.看选择的数是否满足条件1.全排列推荐使用next_permutation,可以去除重复的排原创 2020-08-14 14:27:32 · 8092 阅读 · 12 评论 -
蓝桥杯省赛真题-方格填数
方格填数如下的10个格子 +--+--+--+ | | | |+--+--+--+--+| | | | |+--+--+--+--+| | | |+--+--+--+(如果显示有问题,也可以参看【图1.jpg】)填入0~9的数字。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻)一共有多少种可能的填数方案?请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。1.思路(暴力)用全排列,然后再判断每两个原创 2020-08-14 09:45:05 · 3145 阅读 · 3 评论 -
蓝桥杯省赛真题-抽签
抽签X星球要派出一个5人组成的观察团前往W星。其中:A国最多可以派出4人。B国最多可以派出2人。C国最多可以派出2人。…那么最终派往W星的观察团会有多少种国别的不同组合呢?下面的程序解决了这个问题。数组a[] 中既是每个国家可以派出的最多的名额。程序执行结果为:DEFFFCEFFFCDFFFCDEFFCCFFFCCEFFCCDFFCCDEFBEFFFBDFFFBDEFFBCFFFBCEFFBCDFFBCDEF....(以下省略,总共101行)#inc原创 2020-08-13 17:14:25 · 222 阅读 · 0 评论 -
蓝桥杯省赛真题-快速排序
快速排序#include <stdio.h>void swap(int a[], int i, int j){ int t = a[i]; a[i] = a[j]; a[j] = t;}int partition(int a[], int p, int r){ int i = p; int j = r + 1; int x = a[p]; while(1){ while(i<r && a[++i]<原创 2020-08-12 20:24:49 · 223 阅读 · 0 评论 -
蓝桥杯省赛真题-凑算式
凑算式凑算式 B DEFA + --- + ------- = 10 C GHI (如果显示有问题,可以参见【图1.jpg】)这个算式中AI代表19的数字,不同的字母代表不同的数字。比如:6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。这个算式一共有多少种解法?注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。1.思路先看题目:3项和等于10,还有分式,则要注意分式通分。然后可以用全排原创 2020-08-12 19:21:24 · 635 阅读 · 0 评论 -
蓝桥杯省赛真题-生日蜡烛
生日蜡烛某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。现在算起来,他一共吹熄了236根蜡烛。请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。1.思路就是等差数列求和:(i+j)*(j-i+1)/2=2362.源码#include<stdio.h>int main(){ int i,j; for(i=1;i<100;i++){ f原创 2020-08-12 17:25:03 · 378 阅读 · 0 评论 -
蓝桥杯省赛真题-煤球数目
煤球数目有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),…如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。1.思路首先看题目:a0=0a1=a0+1a2=a1+2a3=a2+3a(n)=a(n-1)+n2.源码#include<stdio.h>int a[100];int main(){原创 2020-08-12 17:05:12 · 436 阅读 · 0 评论 -
蓝桥杯省赛真题-方格分割
方格分割6x6的方格,沿着格子的边线剪开成两部分。要求这两部分的形状完全相同。如图:p1.png, p2.png, p3.png 就是可行的分割法。试计算:包括这3种分法在内,一共有多少种不同的分割方法。注意:旋转对称的属于同一种分割法。请提交该整数,不要填写任何多余的内容或说明文字。1.思路从中间出发(3,3),向两边走,形成一条切割线。然后因为是旋转体(旋转4次回到起始形状),所以要除以42.源码#include<iostream> using namespa原创 2020-08-11 20:33:51 · 2002 阅读 · 4 评论 -
蓝桥杯省赛真题-k倍区间
k倍区间给定一个长度为N的数列,A1, A2, … AN,如果其中一段连续的子序列Ai, Ai+1, … Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。你能求出数列中总共有多少个K倍区间吗?输入第一行包含两个整数N和K。(1 <= N, K <= 100000) 以下N行每行包含一个整数Ai。(1 <= Ai <= 100000) 输出输出一个整数,代表K倍区间的数目。例如,输入:5 21 2 3 4原创 2020-08-11 20:25:42 · 352 阅读 · 0 评论 -
蓝桥杯省赛真题-分巧克力
分巧克力儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。为了公平起见,小明需要从这 N 块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:1. 形状是正方形,边长是整数 2. 大小相同 例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。当然小朋友们都希望得到的巧克力尽可能大,你能帮小Hi计算出最大的边长是多少么?输入第一行包含两个整数N和K。(1 <= N原创 2020-08-11 20:20:24 · 389 阅读 · 0 评论 -
蓝桥杯省赛真题-包子凑数(完全背包)
包子凑数标题:包子凑数小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子。每种蒸笼都有非常多笼,可以认为是无限笼。每当有顾客想买X个包子,卖包子的大叔就会迅速选出若干笼包子来,使得这若干笼中恰好一共有X个包子。比如一共有3种蒸笼,分别能放3、4和5个包子。当顾客想买11个包子时,大叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个的再加2笼4个的)。当然有时包子大叔无论如何也凑不出顾客想买的数量。比如一共有3种蒸笼,分别能放4、5和6个包子。而顾客转载 2020-08-11 19:45:03 · 3034 阅读 · 6 评论 -
蓝桥杯省赛真题-日期问题(C语言)
日期问题小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。给出一个文献上的日期,你能帮助小明判断有哪些可能的日期对其对应吗?输入一个日期,原创 2020-08-11 17:22:12 · 1396 阅读 · 1 评论 -
蓝桥杯省赛真题-最大公共子串(动态规划)
最大公共子串最大公共子串长度问题就是:求两个串的所有子串中能够匹配上的最大长度是多少。比如:“abcdkkk” 和 “baabcdadabc”,可以找到的最长的公共子串是"abcd",所以最大公共子串长度为4。下面的程序是采用矩阵法进行求解的,这对串的规模不大的情况还是比较有效的解法。请分析该解法的思路,并补全划线部分缺失的代码。#include <stdio.h>#include <string.h>#define N 256int f(const char*原创 2020-08-11 11:25:18 · 402 阅读 · 0 评论 -
蓝桥杯省赛真题-取数位
取数位求1个整数的第k位数字有很多种方法。以下的方法就是一种。// 求x用10进制表示时的数位长度 int len(int x){ if(x<10) return 1; return len(x/10)+1; //x位数} // 取x的第k位数字int f(int x, int k){ if(len(x)-k==0) return x%10; //一位数 return _____________________; //填空} int main()原创 2020-08-10 17:37:05 · 340 阅读 · 0 评论 -
蓝桥杯省赛真题-承压计算
1.承压计算X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。每块金属原料的外形、尺寸完全一致,但重量不同。金属材料被严格地堆放成金字塔形。 7 5 8 7 8 8 9 2 7 2 8 1 4 9 1原创 2020-08-10 13:00:20 · 497 阅读 · 1 评论 -
蓝桥杯省赛-等差数列
等差素数列2,3,5,7,11,13,…是素数序列。类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。上边的数列公差为30,长度为6。2004年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。这是数论领域一项惊人的成果!有这一理论为基础,请你借助手中的计算机,满怀信心地搜索:长度为10的等差素数列,其公差最小值是多少?注意:需要提交的是一个整数,不要填写任何多余的内容和说明文字。1.思路就是筛选素数,然后依次加上公差再判断是否为素数,并累原创 2020-08-10 11:45:32 · 581 阅读 · 0 评论 -
购物单(C语言)
1. 购物单小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场代为购物。小明很厌烦,但又不好推辞。这不,XX大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的。小明也有个怪癖,不到万不得已,从不刷卡,直接现金搞定。现在小明很心烦,请你帮他计算一下,需要从取款机上取多少现金,才能搞定这次购物。取款机只能提供100元面额的纸币。小明想尽可能少取些现金,够用就行了。你的任务是计算出,小明最少需要取多少现金。以下是让人头疼的购物单,为了保护隐私,物品名称被隐藏原创 2020-08-10 11:05:25 · 1777 阅读 · 0 评论