2017年蓝桥杯省赛赛前集训题(共14题)

合集下载

蓝桥杯练习系统题目汇总(K12教育文档)

蓝桥杯练习系统题目汇总(K12教育文档)

(完整word版)蓝桥杯练习系统题目汇总(word版可编辑修改)编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整word版)蓝桥杯练习系统题目汇总(word版可编辑修改))的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整word版)蓝桥杯练习系统题目汇总(word版可编辑修改)的全部内容。

蓝桥杯练习系统题目汇总:入门训练1. Fibonacci数列问题描述Fibonacci数列的递推公式为:F n=F n—1+F n-2,其中F1=F2=1.当n比较大时,F n也非常大,现在我们想知道,F n除以10007的余数是多少。

输入格式输入包含一个整数n。

输出格式输出一行,包含一个整数,表示F n除以10007的余数.说明:在本题中,答案是要求F n除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出F n的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单.样例输入10样例输出55样例输入22样例输出7704数据规模与约定1 〈= n 〈= 1,000,000。

参考代码:c++1.#include〈stdlib.h〉2.#include<stdio。

h>3.#define MOD 100074.#define MAXN 10000015.int n,i, F[MAXN];6.int main()7.{8.scanf(”%d",&n);9.F[1]= 1;10.F[2]= 1;11.for(i = 3;i <= n;++i)12.F[i]= (F[i-1] + F[i-2])%MOD;13.printf(”%d\n”,F[n]);14.return0;15.}java:1.import java。

第六届蓝桥杯程序设计大赛题目及答案

第六届蓝桥杯程序设计大赛题目及答案

第六届省赛1.方程整数解方程: a^2 + b^2 + c^2 = 1000(或参见【图1.jpg】)这个方程有整数解吗?有:a,b,c=6,8,30 就是一组解。

你能算出另一组合适的解吗?请填写该解中最小的数字。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

10#include<stdio.h>int main(){int a,b,c;for(a=1;a*a<=1000;a++){for(b=1;b*b<=1000;b++){for(c=1;c*c<=1000;c++){if(a*a+b*b+c*c==1000){printf("%d %d %d\n",a,b,c);}}}}return 0;}2.星系炸弹在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。

每个炸弹都可以设定多少天之后爆炸。

比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。

有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。

请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。

比如:2015-02-19 请严格按照格式书写。

不能出现其它文字或符号。

2017-08-05#include <stdio.h>int main(){int monthDays[12]={31,28,31,30,31,30,31,31,30,31,30,31};int days=1000;int year=2014, month=11, day=9;int i;for(i=0;i<days;i++){day++;if(day>monthDays[month-1]){day=1;month++;if(month>12){month=1;year++;if((year%400==0) ||(year%4==0 && year%100!=0))monthDays[1]=29;elsemonthDays[1]=28;}}}printf("%d-%d-%d\n",year,month,day);getchar();return 0;}3.奇妙的数字小明发现了一个奇妙的数字。

数据结构竞赛题目集锦

数据结构竞赛题目集锦

数据结构竞赛题目集锦1.发现环(题目来源:2017蓝桥杯决赛)问题描述小明的实验室有N台电脑,编号1~N。

原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络。

在树形网络上,任意两台电脑之间有唯一的路径相连。

不过在最近一次维护网络时,管理员误操作使得某两台电脑之间增加了一条数据链接,于是网络中出现了环路。

环路上的电脑由于两两之间不再是只有一条路径,使得这些电脑上的数据传输出现了BUG。

为了恢复正常传输。

小明需要找到所有在环路上的电脑,你能帮助他吗?输入格式第一行包含一个整数N。

以下N行每行两个整数a和b,表示a和b之间有一条数据链接相连。

对于30%的数据,1 <= N <= 1000对于100%的数据, 1 <= N <= 100000, 1 <= a, b <= N输入保证合法。

输出格式按从小到大的顺序输出在环路上的电脑的编号,中间由一个空格分隔。

样例输入51 23 12 42 55 3样例输出1 2 3 52.小朋友排队(题目来源:第五届蓝桥杯预赛 C/C++本科B组)问题描述n 个小朋友站成一排。

现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。

每个小朋友都有一个不高兴的程度。

开始的时候,所有小朋友的不高兴程度都是0。

如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如果第二次要求他交换,则他的不高兴程度增加2(即不高兴程度为3),依次类推。

当要求某个小朋友第k次交换时,他的不高兴程度增加k。

请问,要让所有小朋友按从低到高排队,他们的不高兴程度之和最小是多少。

如果有两个小朋友身高一样,则他们谁站在谁前面是没有关系的。

输入格式输入的第一行包含一个整数n,表示小朋友的个数。

第二行包含 n 个整数H1 H2 … Hn,分别表示每个小朋友的身高。

输出格式输出一行,包含一个整数,表示小朋友的不高兴程度和的最小值。

样例输入 3 3 2 1 样例输出 93. 剪邮票(题目来源:2016年蓝桥杯) 问题描述如图1所示, 有12张连在一起的12生肖的邮票。

蓝桥杯Python集训课复习题一

蓝桥杯Python集训课复习题一

蓝桥杯Python集训课复习题一选择题您的姓名: [填空题] *_________________________________1.从火星上看太阳运行轨迹呈什么形状?() [单选题] *A.“8”字形B.圆形C.泪珠形(正确答案)2. 2013年9月,英国科学家在南极冰下湖的泥浆里发现了哪种类型的生命迹象?() [单选题] *A.距今10万年的嗜极生物(正确答案)B. 距今12万年的嗜极生物C. 距今15万年的嗜极生物3.以下哪种动物和猛犸象的遗传基因最相似?() [单选题] *A. 亚洲象B.非洲象(正确答案)C.美洲象4.下列选项中,哪个地方最适合猛犸象生存?() [单选题] *A.西伯利亚(正确答案)B.阿拉斯加C.非洲荒野5.硼砂的一般形态是什么?() [单选题] *A.白色晶体的粉末(正确答案)B.白色晶体的小颗粒C.蓝色晶体的粉末6.捕蝇草的绝杀武器是什么?() [单选题] *A.叶面上的腺毛B. 叶片内的绒毛(正确答案)C. 颈部的囊7.木卫二的主体结构是什么?() [单选题] *A.碳酸钙岩石B.铝硅酸盐岩石C.硅酸盐岩石(正确答案)8.软泥放在哪里会很快变干发硬?() [单选题] *A.空气中(正确答案)B.密闭的玻璃容器中C.水中9.人的大脑通过什么保持时间感?() [单选题] *A.数自己的心跳(正确答案)B.数自己的脉搏C.无法保持10.蚊子依据什么寻找吸血目标?() [单选题] *A.人的体温B.人的血型C.二氧化碳.挥发性化学物质(正确答案)11.体型无比巨大的迷惑龙通常在开阔地区活动,那迷惑龙妈妈会在哪里筑巢产卵?() [单选题] *A.丛林(正确答案)B.平原C.沙漠12.以下哪种是萨米人的主要牲畜?() [单选题] *A.麋鹿B.驯鹿(正确答案)C.驼鹿13.小盗龙有几个翅膀?() [单选题] *A.没有B.2个C.4个(正确答案)14.海獭为什么揉脸?() [单选题] *A.无意识的动作B.清洁(正确答案)C.卖萌15.考拉的主要食物是:() [单选题] *A.橡树叶子B.榕树叶子C.桉树叶子(正确答案)16.鸟和蛋谁先出现的?() [单选题] *A.鸟B.蛋(正确答案)C.一起出现的17.驯鹿的迁徙信号由谁发起?() [单选题] *A.雄鹿B.雌鹿(正确答案)C.任何一只都行18.飞出太阳系的“旅行号”宇宙探测器是主要靠什么加速的?() [单选题] *A.天体的引力(正确答案)B.发射火箭的助推C.自身的推进器19.天王星表面那梦幻般的蓝色其来源是:() [单选题] *A.水B.液态氨C.甲烷(正确答案)20.热气球借助什么飘起来?() [单选题] *A.空气(正确答案)B.氦气C.氢气21.破冰船的破冰方式不包括?() [单选题] *A.连续式破冰法B.冲撞式破冰法C.摩擦式破冰法(正确答案)22.下列关于仙女座星系和银河系之间的关系的叙述,正确的是?() [单选题] *A.仙女座星系在绕着银河系以25000千米/小时的速度做圆周运动。

(完整word版)蓝桥杯集训讲题

(完整word版)蓝桥杯集训讲题

一、选择题(单选题,每空50 分)第一题(难度系数 1)以下哪个程序可以实现:在 EV3 主机屏幕上显示“Hello!"字样,并保持 5 秒钟后结束程序?A:A错误的原因,我们知道如果选用循环模块,循环的内容必须是要放在循环模块的内部,才可以B:B错误的原因,显示模块的程序在显示屏上显示可能只需要几毫秒,但是我们人的眼睛是看不见,因为图像的信息,在眼睛里停留的时间特别短,程序可以运行但是我们看不见.C:C错误的原因和B相似,只循环五次,时间依旧很短,人眼无法看见D:以下是显示模块的具体介绍,请小朋友们仔细观看第二题(难度系数 3)以下哪个程序可以实现:“将颜色传感器测量的反射光强度数值实时显示在 EV3 主机屏幕上”?A:B:题目要求是实时监测,这里是当小于50的情况与题目不符C:这里用了颜色传感器的“颜色”模式,不是“反射光线强度”模式D:以上程序均不能。

颜色传感器可以检测进入传感器正面小窗口的光线的颜色或强度。

颜色传感器可以在三种不同模式下使用:“颜色”模式、“反射光线强度”模式和“环境光强度"模式“反射光线强度"模式在“反射光线强度”模式中,颜色传感器会检测进入传感器的光线的强度。

光线的强度测量为从 0 至 100 的百分比,其中 0 表示非常暗,100 表示非常亮。

当颜色传感器处于“反射光线强度”模式时,传感器正面的红色 LED 指示灯会开启。

如果传感器接近于物体或表面,则此红色光线会从物体上反射,然后进入要检测的传感器。

可以使用此方法测量表面或物体上的颜色阴影,因为较暗颜色阴影会将较少红色光线反射回传感器。

“环境光强度”模式在“环境光强度”模式中,与“反射光线强度"模式一样,颜色传感器会检测进入传感器的光线的强度.光线的强度测量为从0 至 100 的百分比,其中 0 表示非常暗,100 表示非常亮。

在“环境光强度"模式中,传感器正面的蓝色 LED 指示灯会微弱开启。

蓝桥杯VIP试题以及答案解析

蓝桥杯VIP试题以及答案解析

//首先声明这并不是本人原创,只不不过本人想总结出来方便大家,全为C++代码。

1.结点选择问题描述有一棵 n 个节点的树,树上每个节点都有一个正整数权值。

如果一个点被选择了,那么在树上和它相邻的点都不能被选择。

求选出的点的权值和最大是多少?解题思路:这题模型是树形动态规划入门题目,dp[i][0]表示该节点不被选择,dp[i][1]表示该结点被选择。

转移方程为:dp[u][1]+=dp[v][0];//选择了u结点,则与它邻接的结点不选;dp[u][0]+=max(dp[v][0],dp[v][1]);不选择u结点,则与它邻接的结点选择结果最大的;应该特别注意:该题结点数量较大,应该选用邻接表存储边的关系1.#include<cstdio>2.#include<cstring>3.#define max(a,b) ((a)>(b)?(a):(b))4.#define maxn 1000105.bool vis[maxn];6.int dp[maxn][2];7.int father[maxn];8.int head[maxn];9.int n;10.int cnt;11.struct Edge12.{13.int to,next;14.}edge[2*maxn];15.void add(int u,int v)16.{17. edge[cnt].to=v;18. edge[cnt].next=head[u];19. head[u]=cnt++;20.}21.void treedp(int u)22.{23. vis[u]=1;24.for(int i=head[u];i!=-1;i=edge[i].next)25. {26.int v=edge[i].to;27.if(!vis[v])28. {29. treedp(v);30. dp[u][1]+=dp[v][0];31. dp[u][0]+=max(dp[v][1],dp[v][0]);32. }33. }34.}35.void init()36.{37. cnt=0;38. memset(dp,0,sizeof(dp));39. memset(father,0,sizeof(father));40. memset(vis,0,sizeof(vis));41. memset(head,-1,sizeof(head));42.}43.int main()44.{45. init();46. scanf("%d",&n);47.for(int i=1;i<=n;i++)48. scanf("%d",&dp[i][1]);49.int root=0;50.int begin=1;51.for(int i=0;i<n-1;i++)52. {53.int a,b;54. scanf("%d%d",&a,&b);55. add(a,b);56. add(b,a);57. father[b]=a;58.if(root==b||begin)59. {60. root=a;61. }62. }63.64.while(father[root])65. root=father[root];66. treedp(root);67.int ans;68. ans=max(dp[root][0],dp[root][1]);69. printf("%d\n",ans);70.}2.K好数问题描述如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。

java蓝桥杯历年真题及答案整理(小结)

java蓝桥杯历年真题及答案整理(小结)

java蓝桥杯历年真题及答案整理(⼩结)蓝桥杯java历年真题及答案整理(闭关⼀个⽉,呕⼼沥⾎整理出来的)1 全排列是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种。

如:给定 A、B、C三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA⼀共3!=3*2=6种情况。

package Question1_9;import java.util.Scanner;import java.util.Vector;public class Question1 {public static long count=0;private void fullPermutation(Vector<Character>sourse, Vector<Character> result) {if(sourse.size()==0){for (int i = 0; i < result.size(); i++) {System.out.print(result.elementAt(i));}System.out.print("\n");count++;return;}for (int i = 0; i < sourse.size(); i++) {Vector<Character>tsourse=new Vector<Character>(sourse);Vector<Character>tresult=new Vector<Character>(result);tresult.add(sourse.elementAt(i));tsourse.remove(i);new Question1().fullPermutation(tsourse, tresult);}}public static void main(String[] args) {Scanner scanner=new Scanner(System.in);int n=scanner.nextInt();Vector<Character> sourse=new Vector<Character>();Vector<Character> result=new Vector<Character>();for (int i = 0; i < n; i++) {sourse.add((char)('A'+i));}new Question1().fullPermutation(sourse, result);System.out.println(Question1.count);}}2串的简单处理串的处理在实际的开发⼯作中,对字符串的处理是最常见的编程任务。

蓝桥杯历年真题你刷了吗?过来人教你逆袭!

蓝桥杯历年真题你刷了吗?过来人教你逆袭!

蓝桥杯历年真题你刷了吗?过来⼈教你逆袭!蓝桥杯报名已经开始,你做好准备了吗?在参赛报名前,⼀定要做好充⾜的准备,除了学习算法等基础知识外,还要学会实战。

今天,我带来2017年蓝桥杯省赛真题,欢迎⼤家⼀起来做刷题哦~单独戳我或移步⼯粽号:蓝桥云课,即可免费得蓝桥杯真题库!(PS:千万别只看不思考不敲代码!)01 蓝桥杯省赛真题本题为填空题,只需要算出结果后,在代码中使⽤输出语句将所填结果输出即可。

X 星球的⼀处迷宫游乐场建在某个⼩⼭坡上。

它是由 10x10 相互连通的⼩房间组成的。

房间的地板上写着⼀个很⼤的字母。

我们假设玩家是⾯朝上坡的⽅向站⽴,则:L 表⽰⾛到左边的房间;R 表⽰⾛到右边的房间;U 表⽰⾛到上坡⽅向的房间;D 表⽰⾛到下坡⽅向的房间。

X星球的居民有点懒,不愿意费⼒思考。

他们更喜欢玩运⽓类的游戏。

这个游戏也是如此!开始的时候,直升机把 100 名玩家放⼊⼀个个⼩房间内。

玩家⼀定要按照地上的字母移动。

迷宫地图如下:UDDLUULRULUURLLLRRRURRUURLDLRDRUDDDDUUUUURUDLLRRUUDURLRLDLRLULLURLLRDURDLULLRDDDUUDDUDUDLLULRDLUURRR请你计算⼀下,最后,有多少玩家会⾛出迷宫? ⽽不是在⾥边兜圈⼦。

如果你还没明⽩游戏规则,可以参看下⾯⼀个简化的 4x4 迷宫的解说图:02 解题思路(1)投机取巧式根据“考⽣须知”,这题是填空题,只交答案就⾏了。

如果不想编码,直接⽤⼿⼀个个去数那 100 个点,⼏分钟就数完了,答案是 31,⽐编码还要快。

(2) DFS 编码⼀道搜索题,可以选择 dfs,代码简短。

#include <iostream>using namespace std;#include<vector>#include<string>using namespace std;int ans;vector<vector<char>>s={{'U','D','D','L','U','U','L','R','U','L'},{'U','U','R','L','L','L','R','R','R','U'},{'R','R','U','U','R','L','D','L','R','D'},{'R','U','D','D','D','D','U','U','U','U'},{'U','R','U','D','L','L','R','R','U','U'},{'D','U','R','L','R','L','D','L','R','L'},{'U','L','L','U','R','L','L','R','D','U'},{'R','D','L','U','L','L','R','D','D','D'},{'U','U','D','D','U','D','U','D','L','L'},{'U','L','R','D','L','U','U','R','R','R'}};bool vis[100][100];void dfs(int x,int y){if(vis[x][y] == true)return;if(x<0||y<0||x>=s.size() || y>=s[x].size()){ans++;return;}switch (s[x][y]){case 'U':vis[x][y]= true;dfs(x-1,y);vis[x][y]= false;break;case 'L':vis[x][y]= true;dfs(x,y-1);vis[x][y]= false;break;case 'R':vis[x][y]= true;dfs(x,y+1);vis[x][y]= false;break;case 'D':vis[x][y]= true;dfs(x+1,y);vis[x][y]= false;break;default:return;}}void has_Path(){for(int i=0;i<s.size();++i)for(int j=0;j<s[i].size();++j)dfs(i,j);}int main(){has_Path();cout<<ans;}今天的蓝桥杯真题刷题就到这⾥了,后续我也会不定期更新蓝桥杯真题讲解。

蓝桥杯c-c++省赛试题及答案解析

蓝桥杯c-c++省赛试题及答案解析

2016蓝桥杯c-c++B组省赛试题及解析第一题煤球数目有一堆煤球,堆成三角棱锥形。

具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

答案:171700#include<stdio.h>int main(){int a[101] ={0};for(int i = 1 ; i < 101 ; i ++)a[i] = a[i-1] + i;int ans = 0;for(int j = 1 ; j < 101 ; j ++)ans += a[j];printf("%d\n",ans);return 0;}第二题生日蜡烛某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。

现在算起来,他一共吹熄了236根蜡烛。

请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

答案:26#include<stdio.h>int main(){int start,end;for(start = 1 ; start < 236 ; start ++){for( end = start ; end < 236 ; end ++ ){int sum = 0;for(int i = start; i <= end; i ++)sum += i;if( sum == 236){printf("start : %d end : %d\n",start,end);}}}return 0;}第三题凑算式B DEFA + --- + ------- = 10C GHI(如果显示有问题,可以参见【图1.jpg】)这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。

[2017年整理]第三届蓝桥杯预赛真题及详细答案

[2017年整理]第三届蓝桥杯预赛真题及详细答案

第三届蓝桥桥杯预赛真题及详细答案一、微生物增殖假设有两种微生物X 和YX出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。

一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。

现在已知有新出生的X=10, Y=89,求60分钟后Y的数目。

如果X=10,Y=90 呢?本题的要求就是写出这两种初始条件下,60分钟后Y的数目。

题目的结果令你震惊吗?这不是简单的数字游戏!真实的生物圈有着同样脆弱的性质!也许因为你消灭的那只Y 就是最终导致Y 种群灭绝的最后一根稻草!请忍住悲伤,把答案写在“解答.txt”中,不要写在这里!答案:0 和94371840(此题比较简单就不写程序了,以下均有程序)二、古堡算式福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。

请你利用计算机的优势,找到破解的答案。

把ABCDE 所代表的数字写出来。

答案写在“解答.txt”中,不要写在这里!参考答案:21978参考程序:#include<stdio.h>void main(){int k,t1 ,t;for(k=10234;k<50000;k++){bool flag[10]={0};t=k;t1=0;while(t){if(flag[t%10])break ;flag[t%10] = true ;t1 = t1*10 + t%10 ;t /= 10 ;}if( t==0 && t1%k==0){printf("%d * %d = %d\n",k,t1/k,t1);}}三、比酒量有一群海盗(不多于20人),在船上比拼酒量。

过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。

c++ 蓝桥杯集训题

c++ 蓝桥杯集训题

以下是一些 C++ 蓝桥杯集训题目,供您参考:
1. 字符串的排序:给定一个字符串,将字符串中的字符按照字典序排序,并输出排序后的字符串。

2. 数组的排序:给定一个整数数组,将数组中的元素按照升序排序,并输出排序后的数组。

3. 最大子序和:给定一个整数数组,求数组中最大的子序和。

4. 寻找最大值:给定一个整数数组,求数组中的最大值。

5. 链表的操作:给定一个链表的头节点,进行以下操作:插入节点、删除节点、查找节点、打印链表。

6. 二叉树的操作:给定一个二叉树的根节点,进行以下操作:插入节点、删除节点、查找节点、遍历二叉树(前序遍历、中序遍历、后序遍历)。

7. 动态规划:给定一个二维数组,求最大子矩阵和。

8. 回溯算法:给定一个字符串,判断该字符串是否是回文字符串。

9. 快速排序:给定一个整数数组,使用快速排序算法对其进行排序。

10. 二分查找:给定一个有序数组,查找指定元素在数组中的位置。

蓝桥杯初赛b组试题

蓝桥杯初赛b组试题

蓝桥杯初赛b组试题————————————————————————————————作者:————————————————————————————————日期:第一题结果填空3‘奖券数目有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。

虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。

某抽奖活动的奖券号码是5位数(10-99),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。

请提交该数字(一个整数),不要写任何多余的内容或说明性文字。

-题解:考试的时候写了个回溯法,然后屁颠屁颠的开始做下面一题了。

结果错了→_→1 #include <iostream>2using namespace std;3bool fuck(int t)4 {5while(t)6 {7if(t%10==4)return false;8 t/=10;9 }10return true;11 }12int main()13 {14int ans = 0, t = 10;15while(t<100)16if(fuck(t++))ans++;17 cout<<ans<<endl;18return0;19 }第一题正确答案:52488(我居然上来第一题就错了居然写了13440→_→)//cout<<8*9*9*9*9; →_→第二题结果填空5‘星系炸弹在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。

每个炸弹都可以设定多少天之后爆炸。

比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。

有一个贝塔炸弹,2014年11月9日放置,定时为1天,请你计算它爆炸的准确日期。

请填写该日期,格式为yyyy-mm-dd 即4位年份2位月份2位日期。

比如:2015-02-19 请严格按照格式书写。

蓝桥杯预赛题目与答案

蓝桥杯预赛题目与答案

蓝桥杯预赛题目1第一题标题:啤酒和饮料啤酒每罐2.3元,饮料每罐1.9元。

小明买了若干啤酒和饮料,一共花了82.3元。

我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。

注意:答案是一个整数。

请通过浏览器提交答案。

不要书写任何多余的内容(例如:写了饮料的数量,添加说明文字等)。

#include <stdio.h>void main() { int pj,yl; //啤酒与饮料double sum=82.3; for(pj=0; pj<=20; pj++) { yl=(int)((sum-pj*2.3)/1.9); if(pj*2.3+yl*1.9==sum) { printf("pj=%d,yl=%d\n",pj,yl); //pj=11 yl=30 } } }第二题标题:切面条一根高筋拉面,中间切一刀,可以得到2根面条。

如果先对折1次,中间切一刀,可以得到3根面条。

如果连续对折2次,中间切一刀,可以得到5根面条。

那么,连续对折10次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。

不要填写任何多余的内容。

#include <stdio.h> void main(){ int qie(int n); int g(int n); int sum=0; //面条总数int n=10; sum=qie(n); printf("%d\n",sum); }int qie(int n) //折叠n次以后,切一刀后的面条数{ int g(int n); if(n==1) { return 3; } else { return g(n-1)+ qie(n-1); //g(n)是有所有面条都有折痕一边的面条数} }int g(int n) { if(n==1) { return 2; } else { return g(n-1)*2; } }-----1025第三题标题:李白打酒话说大诗人李白,一生好饮。

2017年蓝桥杯赛赛前集训题共14题

2017年蓝桥杯赛赛前集训题共14题

doublex;
ﻩfor(x=2;x<=3;x+=1e-7)

ﻩif(abs(pow(x,x)-10)<1e-6)
ﻩcout<<fixed<<setprecision(6)<<x;
ﻩ}
return 0;
}
答案:2.506184
其他类似题:ALGO-23一元三次方程求解
第3题(全排列)
注意:
全排列必考!
全排列必考!
全排列必考!
重要的事要说三遍!
李白打酒(2014年省赛本科B组第3题)
话说大诗人李白,一生好饮。幸好他从不开车。
一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱:
无事街上走,提壶去打酒。ﻫ逢店加一倍,遇花喝一斗。ﻫ这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。

voidperms(int p[],int start)

inti;
ﻩif(start==N-1)
{
int sum=2;
ﻩfor(i=0;i<N;i++)
ﻩﻩif(p[i]==1)
ﻩsum<<=1;
ﻩﻩelseif(p[i]==2)
ﻩﻩsum--;
ﻩif(sum==1)cnt++;//倒数第2次,剩1斗酒
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。
请填写该日期,格式为yyyy-mm-dd即4位年份2位月份2位日期。比如:2015-02-19

蓝桥杯2017年_Java组_C语言组真题解析

蓝桥杯2017年_Java组_C语言组真题解析
• printf("%I64d",b%9);
• return 0;
•}
*02兴趣小组
• 为丰富同学们的业余文化生活,某高校学生会创办了3个兴趣小 组(以下称A组,B组,C组)。每个小组的学生名单分别在 【A.txt】,【B.txt】和【C.txt】中。每个文件中存储的是学生的 学号。由于工作需要,我们现在想知道:既参加了A组,又参加 了B组,但是没有参加C组的同学一共有多少人?

for(String s:split) {

String trim=s.trim();//去除空格

if(trim.length()>0)//去除空串

set.add(trim);//加入set}}
• reader.close();//读取结束}
• #include<set>#include<iostream>#include<fstream>//读文件
• long factor=(long) Math.pow(2,29);//扩大数据以防止精度丢失
• long [][]arr=new long[30][30];
• for(int i=0;i<29;i++) {
• for(int j=0;j<=i;j++) {

long a=sc.nextLong();

换}}
temp=a[k];a[k]=a[i];a[i]=temp;//递归结束后值回退,再两两交
• public static void main(String[] args) {
• f(0);//从0开始递归
• System.out.println(answer/6);}//去重复,3条边全排列一共6种

2017年蓝桥杯B组CC++决赛题目

2017年蓝桥杯B组CC++决赛题目

2017年蓝桥杯B组CC++决赛题⽬2017年第⼋届蓝桥杯B组C/C++决赛题⽬1.36进制对于16进制,我们使⽤字母A-F来表⽰10及以上的数字。

如法炮制,⼀直⽤到字母Z,就可以表⽰36进制。

36进制中,A表⽰10,Z表⽰35,AA表⽰370你能算出 MANY 表⽰的数字⽤10进制表⽰是多少吗?请提交⼀个整数,不要填写任何多余的内容(⽐如,说明⽂字)2.磁砖样式⼩明家的⼀⾯装饰墙原来是 3*10 的⼩⽅格。

现在⼿头有⼀批刚好能盖住2个⼩⽅格的长⽅形瓷砖。

瓷砖只有两种颜⾊:黄⾊和橙⾊。

⼩明想知道,对于这么简陋的原料,可以贴出多少种不同的花样来。

⼩明有个⼩⼩的强迫症:忍受不了任何22的⼩格⼦是同⼀种颜⾊。

(瓷砖不能切割,不能重叠,也不能只铺⼀部分。

另外,只考虑组合图案,请忽略瓷砖的拼缝)显然,对于 23 个⼩格⼦来说,⼝算都可以知道:⼀共10种贴法,如【p1.png所⽰】但对于 3*10 的格⼦呢?肯定是个不⼩的数⽬,请你利⽤计算机的威⼒算出该数字。

注意:你需要提交的是⼀个整数,不要填写任何多余的内容(⽐如:说明性⽂字)3.希尔伯特曲线希尔伯特曲线是以下⼀系列分形曲线 Hn 的极限。

我们可以把 Hn 看作⼀条覆盖 2^n × 2^n ⽅格矩阵的曲线,曲线上⼀共有 2^n × 2^n 个顶点(包括左下⾓起点和右下⾓终点),恰好覆盖每个⽅格⼀次。

Hn(n > 1)可以通过如下⽅法构造:1. 将 Hn-1 顺时针旋转90度放在左下⾓2. 将 Hn-1 逆时针旋转90度放在右下⾓3. 将2个 Hn-1 分别放在左上⾓和右上⾓4. ⽤3条单位线段把4部分连接起来对于 Hn 上每⼀个顶点 p ,我们定义 p 的坐标是它覆盖的⼩⽅格在矩阵中的坐标(左下⾓是(1, 1),右上⾓是(2^n, 2^n),从左到右是X轴正⽅向,从下到上是Y轴正⽅向),定义 p 的序号是它在曲线上从起点开始数第⼏个顶点(从1开始计数)。

java蓝桥杯历年真题及答案整理(小结)

java蓝桥杯历年真题及答案整理(小结)

java蓝桥杯历年真题及答案整理(⼩结)蓝桥杯java历年真题及答案整理(闭关⼀个⽉,呕⼼沥⾎整理出来的)1 全排列是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种。

如:给定 A、B、C三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA⼀共3!=3*2=6种情况。

package Question1_9;import java.util.Scanner;import java.util.Vector;public class Question1 {public static long count=0;private void fullPermutation(Vector<Character>sourse, Vector<Character> result) {if(sourse.size()==0){for (int i = 0; i < result.size(); i++) {System.out.print(result.elementAt(i));}System.out.print("\n");count++;return;}for (int i = 0; i < sourse.size(); i++) {Vector<Character>tsourse=new Vector<Character>(sourse);Vector<Character>tresult=new Vector<Character>(result);tresult.add(sourse.elementAt(i));tsourse.remove(i);new Question1().fullPermutation(tsourse, tresult);}}public static void main(String[] args) {Scanner scanner=new Scanner(System.in);int n=scanner.nextInt();Vector<Character> sourse=new Vector<Character>();Vector<Character> result=new Vector<Character>();for (int i = 0; i < n; i++) {sourse.add((char)('A'+i));}new Question1().fullPermutation(sourse, result);System.out.println(Question1.count);}}2串的简单处理串的处理在实际的开发⼯作中,对字符串的处理是最常见的编程任务。

2017届蓝桥杯省赛考题

2017届蓝桥杯省赛考题

2017第八届蓝桥杯Java省赛1,标题:购物单小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。

老板忙的时候经常让小明帮忙到商场代为购物。

小明很厌烦,但又不好推辞。

这不,XX大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的。

小明也有个怪癖,不到万不得已,从不刷卡,直接现金搞定。

现在小明很心烦,请你帮他计算一下,需要从取款机上取多少现金,才能搞定这次购物。

取款机只能提供100元面额的纸币。

小明想尽可能少取些现金,够用就行了。

你的任务是计算出,小明最少需要取多少现金。

以下是让人头疼的购物单,为了保护隐私,物品名称被隐藏了。

-----------------**** 180.90 88折**** 10.25 65折**** 56.14 9折**** 104.65 9折**** 100.30 88折**** 297.15 半价**** 26.75 65折**** 130.62 半价**** 240.28 58折**** 270.62 8折**** 247.34 95折**** 73.21 9折**** 101.00 半价**** 79.54 半价**** 278.44 7折**** 199.26 半价**** 12.97 9折**** 166.30 78折**** 125.50 58折**** 84.98 9折**** 113.35 68折**** 166.57 半价**** 42.56 9折**** 81.90 95折**** 131.78 8折**** 255.89 78折**** 109.17 9折**** 146.69 68折**** 139.33 65折**** 141.16 78折**** 154.74 8折**** 85.44 68折**** 293.70 88折**** 261.79 65折**** 11.30 88折**** 268.27 58折**** 128.29 88折**** 251.03 8折**** 208.39 75折**** 128.88 75折**** 62.06 9折**** 225.87 75折**** 12.89 75折**** 34.28 75折**** 62.16 58折**** 129.12 半价**** 218.37 半价**** 289.69 8折--------------------需要说明的是,88折指的是按标价的88%计算,而8折是按80%计算,余者类推。

蓝桥杯集训题(C语言)

蓝桥杯集训题(C语言)

蓝桥杯集训题(C语言)1.难度:中有个时候需要比较精确的算一个除法。

如果两个数,mn输入结果,确保可以留存小数点后100十一位。

例如输出18输出0.125输入197输出2.7142857142857(后一百位)提示:用浮点型是行不通的想其他办法2难道:中排列组合:组合基本性质有:1.c(m,n)=c(m-n,n)2.c(0,n)=13.c(m,n+1)=c(m,n)+c(m-1,n);4.c(1,n)=n输入两个数xy(>0)表示c(x,y)求c(x,y);输入36输出20提示信息:建议运用递回思想,当m<=n/2时,用1展开化简。

3.难度:易得出一个由o和x共同组成的串(长度为1~80),统计数据罚球。

每个o的些分成目前已连续发生的o的个数,x的些分成0.比如ooxxoxxooo的些分成1+2+0+0+1+0+0+1+2+34.难度:易输出n个单词,统计数据单词个数输出helloword输出2输入iloveyou输入35.难度:易输出mn输入行n列于的矩阵(规则在样例中)输出23输入145236输出34输出1671225811349106.难度:较难排列(permutation)用1,2,3.....9共同组成3个三位数abc,def和ghi,每个数字恰好采用一次,建议abc:def:ghi=1:2:3.按照\defghi\的格式输出说有解。

7.难度:容易给出n和n个整数,和k(1<=k<=n),输出这些整数重小到大的第k个(例k=1时就是最小值)。

n<=10^7;提示信息:恳请先全盘掌控快速排序。

本题貌似直观,其实不然。

最难想起的方法就是先排序,然后轻易输入第k个数,但10^7的规模即使采用快速排序(o(sn))的算法来说也很大。

可以在快速排序的“分割“完结后,数组a[p……r]被分为了a[p……q]和a[q+1……r],,则可以根据左边的元素个数q-p+1和k的大小关系只在左边或者右边递回解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1题:星系炸弹(2015年省赛C/C++B组第2题)在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。

每个炸弹都可以设定多少天之后爆炸。

比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。

有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。

请填写该日期,格式为yyyy-mm-dd 即4位年份2位月份2位日期。

比如:2015-02-19请严格按照格式书写。

不能出现其它文字或符号。

•结果:2017-08-05•解决方法:用Excel拖这个题会了的同学们把上课讲过的,课件上的,其他几道Excel拖动题都做一遍。

第2题:(2015年校内选拔赛C/C++B组第3题)如果x的x次幂结果为10(参见【图1.png】),你能计算出x的近似值吗?显然,这个值是介于2和3之间的一个数字。

请把x的值计算到小数后6位(四舍五入),并填写这个小数值。

注意:只填写一个小数,不要写任何多余的符号或说明。

#include <iostream>#include <cmath>#include <iomanip>using namespace std;int main(){double x;for(x=2;x<=3;x+=1e-7){if (abs(pow(x,x)-10)<1e-6)cout<<fixed<<setprecision(6)<<x;}return 0;}答案:2.506184其他类似题:ALGO-23一元三次方程求解第3题(全排列)注意:全排列必考!全排列必考!全排列必考!重要的事要说三遍!李白打酒(2014年省赛本科B组第3题)话说大诗人李白,一生好饮。

幸好他从不开车。

一天,他提着酒壶,从家里出来,酒壶中有酒2斗。

他边走边唱:无事街上走,提壶去打酒。

逢店加一倍,遇花喝一斗。

这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。

请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。

则:babaabbabbabbbb 就是合理的次序。

像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。

答案:14解法1:next_permutation的解法#include<iostream>#include<algorithm>using namespace std;int main(){int p[15]={1,1,1,1,1,2,2,2,2,2,2,2,2,2,2};//1是店,2是花int sum,cnt=0;do{sum=2;for(int i=0;i<15;i++)if(p[i]==1)sum<<=1;else if(p[i]==2)sum--;if(sum==0) cnt++;}while(next_permutation(p,p+14));//因为最后一次遇到的肯定是花,所以只排前14个数,不排最后一个cout<<cnt;return 0;}解法2:交换大法解法#include <iostream>using namespace std;#define N 14//因为最后一次肯定是花,所以只排14个数int cnt;bool ok(int p[],int begin,int end){for (int i = begin; i < end; i++)if (p[i] == p[end])return false;return true;}void perms(int p[],int start){int i;if(start==N-1){int sum=2;for(i=0;i<N;i++)if(p[i]==1)sum<<=1;else if(p[i]==2)sum--;if(sum==1) cnt++;//倒数第2次,剩1斗酒return;}for(i=start;i<N;i++){if (ok(p, start, i)){swap(p[start],p[i]);perms(p,start+1);swap(p[start],p[i]);}}}int main(){int p[]={1,1,1,1,1,2,2,2,2,2,2,2,2,2};//1是店,2是花perms(p,0);cout<<cnt;return 0;}解法3:字符串全排列的解法#include<iostream>#include<algorithm>using namespace std;int main(){string s = "aaaaabbbbbbbbb";//a是店,b是花int sum,cnt=0;do{sum=2;for(int i=0;i<15;i++)if(s[i]=='a')sum<<=1;else if(s[i]=='b')sum--;if(sum==1) cnt++;}while(next_permutation(s.begin(),s.end()));cout<<cnt;return 0;}解法4:递归解法#include<iostream>using namespace std;int cnt=0;void f(int a,int b,int c)//a个店,b朵花,c升酒{if(a>5||b>9) return;f(a+1,b,c*2);f(a,b+1,c-1);if(a==5&&b==9&&c==1)cnt++;}int main(){f(0,0,2);cout<<cnt<<endl;}第4题(逻辑推理题)练习系统ADV-143 扶老奶奶过街•一共有5个红领巾,编号分别为A、B、C、D、E,老奶奶被他们其中一个扶过了马路。

五个红领巾各自说话:A :我和E都没有扶老奶奶B :老奶奶是被C和E其中一个扶过大街的C :老奶奶是被我和D其中一个扶过大街的D :B和C都没有扶老奶奶过街E :我没有扶老奶奶已知五个红领巾中有且只有2个人说的是真话,请问是谁扶这老奶奶过了街?若有多个答案,在一行中输出,编号之间用空格隔开例如A B C D E(这显然不是正确答案)解法1--位运算#include <iostream>using namespace std;#define N 5int main(){int i,j,t,a[N];for (i = 0x10; i >0; i>>=1){t=i;for (j = N-1; j >= 0; j--){a[j] = t & 1;t>>=1;}//ABCDE5个变量存5个人的真假话状态,1为真话,0为假话int A=(a[0]+a[4]==0);//A :我和E都没有扶老奶奶int B=(a[2]+a[4]==1);//B :老奶奶是被C和E其中一个扶过大街的int C=(a[2]+a[3]==1);//C :老奶奶是被我和D其中一个扶过大街的int D=(a[1]+a[2]==0);//D :B和C都没有扶老奶奶过街int E=(a[4]==0);//E :我没有扶老奶奶if(A+B+C+D+E==2)//5个人有且只有2个人说的是真话{for (j = 0; j < N; j++){if(a[j]) cout<<char('A'+j)<<' ';}}}return 0;}解法2-全排列#include<iostream>#include<algorithm>using namespace std;#define N 5int main(){int a[N]={1,0,0,0,0};//1扶了。

0没扶。

do{//ABCDE5个变量存5个人的真假话状态,1为真话,0为假话int A=(a[0]+a[4]==0);//A :我和E都没有扶老奶奶int B=(a[2]+a[4]==1);//B :老奶奶是被C和E其中一个扶过大街的int C=(a[2]+a[3]==1);//C :老奶奶是被我和D其中一个扶过大街的int D=(a[1]+a[2]==0);//D :B和C都没有扶老奶奶过街int E=(a[4]==0);//E :我没有扶老奶奶if(A+B+C+D+E==2)//5个人有且只有2个人说的是真话{for (int i = 0; i < N; i++){if(a[i]) cout<<char('A'+i)<<' ';}}}while(prev_permutation(a,a+N));return 0;}解法3-递归(大材小用了)#include<iostream>using namespace std;#define N 5int a[N];//1扶了。

0没扶。

void f(int k){int i;if(k==N){int sum=0;for(i=0;i<N;i++)sum+=a[i];if(sum==1)//只有一个人扶了{//ABCDE5个变量存5个人的真假话状态,1为真话,0为假话int A=(a[0]+a[4]==0);//A :我和E都没有扶老奶奶int B=(a[2]+a[4]==1);//B :老奶奶是被C和E其中一个扶过大街的int C=(a[2]+a[3]==1);//C :老奶奶是被我和D其中一个扶过大街的int D=(a[1]+a[2]==0);//D :B和C都没有扶老奶奶过街int E=(a[4]==0);//E :我没有扶老奶奶if(A+B+C+D+E==2)//5个人有且只有2个人说的是真话{for (i = 0; i < N; i++){if(a[i]) cout<<char('A'+i)<<' ';}}}return;}for(i=1;i>=0;i--){a[k]=i;f(k+1);}}int main(){f(0);return 0;}第5题:牌型种数(2015年省赛C/C++B组第7题)•小明被劫持到X赌城,被迫与其他3人玩牌。

相关文档
最新文档