2017届蓝桥杯省赛考题
- 格式:doc
- 大小:365.28 KB
- 文档页数:28
(1)煤球数目有一堆煤球,堆成三角棱锥形。
具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),如果一共有100层,共有多少个煤球?题解:纯粹的数学题而已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);(2)生日蜡烛某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。
现在算起来,他一共吹熄了236根蜡烛。
请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。
题解:暴力枚举。
第一重循环枚举刚开始过生日时候的岁数。
第二重循环是枚举现在的岁数第三重循环就是将刚开始过生日的岁数和现在的岁数加起来。
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); (3)B DEFA + — + —— = 10C GHI(如果显示有问题,可以参见【图1.jpg】)这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
比如:6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?//29题解:DFS+回溯由于计算机中5/2会等于2,而且如果打算采用精度方面的处理的话,会很麻烦,而且很容易错。
蓝桥杯历届试题题⽬总结后天就是蓝桥杯省赛了,今天总结⼀下这段时间做的蓝桥杯历届试题,还是⼀个⼀个题⽬的来吧1,历届试题矩阵翻硬币 这个题⽬说真的,我不会,在⽹上看了某神⽜的题解答案为 ans=sqrt(n)*sqrt(m),具体怎么证明的我也不知道2,历届试题兰顿蚂蚁 这个题⽬怎么说呢,应该是送分题,直接模拟就可以了,这⾥就不说了。
3,历届试题分糖果 这个题⽬好像之前在哪⾥做过,也是⼀道模拟题,弄两个数组搞⼀下就可以了 下⾯是代码#include<bits/stdc++.h>using namespace std;#define maxn 100+10int a[2][maxn],n;bool ok(int cur){for (int i=2;i<=n;i++) if (a[cur][i]!=a[cur][i-1]) return0;return1;}int main(){while(scanf("%d",&n)!=EOF){int cur=0,ans=0;for (int i=1;i<=n;i++) scanf("%d",&a[cur][i]);while(!ok(cur)){for (int i=1;i<=n;i++) {if (a[cur][i]%2) {a[cur][i]++; ans++;}}for (int i=1;i<n;i++) a[1-cur][i]=a[cur][i+1]/2; a[1-cur][n]=a[cur][1]/2;for (int i=1;i<=n;i++) a[1-cur][i]+=(a[cur][i]/2);cur=1-cur;}printf("%d\n",ans);}return0;}View Code4,历届试题⼩朋友排队 这个题让我想起了去年武⼤校赛的⼀道题,我永远忘不了,求最⼩交换次数就是求逆序对数,⽽这个题要算出每个⼩朋友交换的次数,故我们从前⾯求⼀次,再从后⾯求⼀次就可以了,我这⾥⽤树状数组来求#include<bits/stdc++.h>using namespace std;#define maxn 1000000+10#define LL long longint a[maxn],n,b[maxn],num[maxn],c[maxn];LL sum[maxn];void init(){sum[0]=0;for (LL i=1;i<maxn;i++) sum[i]=sum[i-1]+i;}int lowbit(int x){return x&(-x);}void add(int x){while(x<maxn){a[x]++;x+=lowbit(x);}}int get_sum(int x){int ans=0;while(x>0){ans+=a[x];x-=lowbit(x);}return ans;}int main(){init();while(scanf("%d",&n)!=EOF){memset(a,0,sizeof(a));memset(num,0,sizeof(num));for (int i=1;i<=n;i++) scanf("%d",&b[i]),c[i]=b[i];sort(c+1,c+n+1);int m=unique(c+1,c+n+1)-c;for (int i=1;i<=n;i++) b[i]=lower_bound(c+1,c+m+1,b[i])-c;for (int i=1;i<=n;i++){num[i]+=get_sum(maxn-1)-get_sum(b[i]);add(b[i]);}memset(a,0,sizeof(a));for (int i=n;i>=1;i--){num[i]+=get_sum(b[i]-1);add(b[i]);}LL ans=0;//for (int i=1;i<=n;i++) printf("%d ",num[i]); printf("\n");for (int i=1;i<=n;i++) ans+=sum[num[i]];printf("%I64d\n",ans);}return0;}View Code5,历届试题波动数列 这个题⽬⼀看,就知道是枚举a出现的次数和b出现的次数,⽹上有⼈⽤BFS和DFS来做,想都不想,肯定超时可以设第⼀个数为x,则 S=n*x+sgm i*(a or -b),则知道a和b的数⽬为n*(n-1)/2,则可以枚举a的数⽬A,知道A后,就看组成A有多少种⽅法,⽽我们只能⽤1,2,。
第八届蓝桥杯大赛个人赛省赛(软件类)C/C++ 大学B组考生须知:●考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。
●考试时间为4小时。
时间截止后,提交答案无效。
●在考试强制结束前,选手可以主动结束考试(需要身份验证),结束考试后将无法继续提交或浏览答案。
●选手可浏览自己已经提交的答案。
被浏览的答案允许拷贝。
●对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
●选手切勿在提交的代码中书写“姓名”、“考号”,“院校名”等与身份有关的信息或其它与竞赛题目无关的内容,否则成绩无效。
●选手必须通过浏览器方式提交自己的答案。
选手在其它位置的作答或其它方式提交的答案无效。
●试题包含三种类型:“结果填空”、“代码填空”与“程序设计”。
结果填空题:要求选手根据题目描述直接填写结果。
求解方式不限。
不要求源代码。
把结果填空的答案直接通过网页提交即可,不要书写多余的内容。
代码填空题:要求选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。
把代码填空的答案(仅填空处的答案,不包括题面已存在的代码或符号)直接通过网页提交即可,不要书写多余的内容。
使用ANSI C/ANSI C++ 标准,不要依赖操作系统或编译器提供的特殊函数。
程序设计题目:要求选手设计的程序对于给定的输入能给出正确的输出结果。
考生的程序只有能运行出正确结果才有机会得分。
注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
对于编程题目,要求选手给出的解答完全符合ANSI C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库。
注意: main函数结束必须返回0注意: 所有依赖的函数必须明确地在源文件中#include <xxx>,不能通过工程设置而省略常用头文件。
所有源码必须在同一文件中。
常用算法题目1.算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种。
如:给定A、B、C三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA一共3!=3*2=6种情况。
public class AllPermutation{public static void main(String[] args){//使用递归完成全排列char[] source=new char[]{'A','B','C'};char[] result=new char[source.length];allPermutation(0,source,result);}/**** @param index当前考虑的数的下标(从0开始)* @param source* @param result*/public static void allPermutation(int index,char[] source,char[] result){//当源数据中只有一个字符时,将该字符加入结果数组,并输出if(source.length==1){result[index]=source[0];show(result);return ;}for(int i=0;i<result.length-index;i++){result[index]=source[i];char[] newSource=getNewSource(source,source[i]);allPermutation(index+1, newSource,result);}}public static void show(char[] result){System.out.println(result);}/*** 生成去掉指定字符的新源数据数组* @param source 原来的源数据数组* @param c 指定去掉的字符* @return*/public static char[] getNewSource(char[] source,char c){ char[] newSource=new char[source.length-1];for(int i=0,j=0;i<source.length;i++){if(source[i]!=c){newSource[j]=source[i];j++;}}return newSource;}}2.串的简单处理串的处理在实际的开发工作中,对字符串的处理是最常见的编程任务。
数据结构竞赛题目集锦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生肖的邮票。
第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斗。
他边走边唱:无事街上走,提壶去打酒。
单片机设计与开发项目基础知识试题(30分)一、填空题1.1 IAP15F2K61S2单片机的定时器0具有种工作模式,当采用外部12MHz晶振时,定时器最大定时长度为μS。
1.2电路如下图所示,其输入电压UI1、UI2分别为0.1V和0.2V,试计算出输出电压UO的值 V。
二、选择题(含多选)2.1 当电路中有用信号为某一固定频率,宜选用滤波器,直流电源的滤波电路宜选用滤波器。
A.带阻B.低通C.高通D.带通2.2 能够实现线与功能的门电路是。
A.与非门B.或非门C.抑或门D.OC门2.3 逻辑表达式F=AB+BC+ABCD+ B的最简式为。
A. C +DB. CC. B+CD. A+C2.4 MCS-51单片机在同一优先级的中断源,同时申请中断时,单片机首先响应下列哪个中断源的请求。
A.串口中断B.定时器0中断1 / 2C.定时器1中断D.外部中断02.5 8051单片机的P0口,当使用外部存储器时它是一个。
A.传输高8位地址口B.传输低8位地址口C.传输高8位数据口D.传输低8位地址/数据口2.6 数码管动态扫描的程序设计一般需要“消隐”动作,才能保证显示效果清晰,下面基于CT017D竞赛板的数码管显示代码片段中第行是用来实现“消隐”功能的。
A.第3行B.第4行C.第5行D.第8行2.7 使用Keil uVision编写51单片机的C程序时,若定义一个变量x,并由编译器将其分配到外部RAM中,应定义语句。
A.code unsigned char x;B.pdata unsigned char x;C.idata unsigned char x;D.xdata unsigned char x;2.8 关于单片机下列哪些说法是错误的。
A.IAP15F2K61S2单片机复位后,P0~P3口状态为低电平B.具有PWM功能的单片机可通过滤波器实现DAC功能C.IAP15F2K61S2可以使用内部RC振荡器,也可以使用外部晶振工作D.所有单片机的程序下载都需要冷启动过程2 / 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;}今天的蓝桥杯真题刷题就到这⾥了,后续我也会不定期更新蓝桥杯真题讲解。
2017年蓝桥杯省赛A组c++第7题(正则问题)/*描述:正则问题考虑⼀种简单的正则表达式:只由 x ( ) | 组成的正则表达式。
⼩明想求出这个正则表达式能接受的最长字符串的长度。
例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字符串是: xxxxxx,长度是6。
输⼊----⼀个由x()|组成的正则表达式。
输⼊长度不超过100,保证合法。
输出----这个正则表达式能接受的最长字符串的长度。
例如,输⼊:((xx|xxx)x|(x|xx))xx程序应该输出:6*/#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<string>#include<vector>#include<stack>#include<bitset>#include<cstdlib>#include<cmath>#include<set>#include<list>#include<deque>#include<map>#include<queue>using namespace std;const int N=100;char str[N]="((xx|xxx)x|(x|xx))xx";int i=0;int result=0;int f(){int max=0;int temp=0;while(i<strlen(str)){if(str[i]=='('){i++;temp+=f();//还不能确定temp+f()是不是最⼤,故⽽不能写 max+=f();}else if(str[i]==')'){i++;break;//不能在这⾥直接写 return max;因为在返回之前⼀定还要⽐较max和temp的⼤⼩,从⽽返回两者中更⼤者;⽽且还要考虑循环的⼤条件 }else if(str[i]=='|'){i++;if(temp>max) max=temp;//总结这个|字符"之前的"最长x字符串的长度temp=0;}else//字符为x的情况{temp++;i++;}}if(temp>max) max=temp;return max;}int main(){//while(scanf("%s",str)!=0&&str!=NULL){result=f();cout<<result<<endl;}return0;}很难的⼀题,思考了很久,主要还是对于深度优先算法理解不够。
第三届蓝桥桥杯预赛真题及详细答案一、微生物增殖假设有两种微生物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人),在船上比拼酒量。
过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。
[蓝桥杯][2017年第⼋届真题]包⼦凑数[蓝桥杯][2017年第⼋届真题]包⼦凑数 题⽬;题⽬描述⼩明⼏乎每天早晨都会在⼀家包⼦铺吃早餐。
他发现这家包⼦铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包⼦。
每种蒸笼都有⾮常多笼,可以认为是⽆限笼。
每当有顾客想买X个包⼦,卖包⼦的⼤叔就会迅速选出若⼲笼包⼦来,使得这若⼲笼中恰好⼀共有X个包⼦。
⽐如⼀共有3种蒸笼,分别能放3、4和5个包⼦。
当顾客想买11个包⼦时,⼤叔就会选2笼3个的再加1笼5个的(也可能选出1笼3个的再加2笼4个的)。
当然有时包⼦⼤叔⽆论如何也凑不出顾客想买的数量。
⽐如⼀共有3种蒸笼,分别能放4、5和6个包⼦。
⽽顾客想买7个包⼦时,⼤叔就凑不出来了。
⼩明想知道⼀共有多少种数⽬是包⼦⼤叔凑不出来的。
输⼊第⼀⾏包含⼀个整数N。
(1 <= N <= 100)以下N⾏每⾏包含⼀个整数Ai。
(1 <= Ai <= 100)输出⼀个整数代表答案。
如果凑不出的数⽬有⽆限多个,输出INF。
样例输⼊245样例输出6假设现有的数是4,5; 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25;可以肯定的4后⾯的数都是⽆法凑出的,那么4,5的倍数可以这样凑;8:4 49: 4 510:5 512:8 413:8 514:10 415:10 516:12 417:13 418:14 419:15 420:16 421:16 522:18 423:18 524:20 425:20 5 可以看出这些数可以有之前凑得出的数加上题⽬所给的数,能凑出,因此只要记录下这些并且逆向循环(为什么是逆向的呢?因为逆向循环可以节约⼀些时间,逆向都是⼤到⼩,从⼤的加上题⽬所给数很容易能凑出,若是从⼩到⼤,循环次数会加多) 这些数可以最多循环到题⽬所给数的最⼤的哪⼀个的倍数就好了,因为接下来的数都可以通过之前的数的倍数得到,或者倍数倍数得到。
2014年第五届蓝桥杯预赛题目第一题标题:啤酒和饮料啤酒每罐2.3元,饮料每罐1.9元。
小明买了若干啤酒和饮料,一共花了82.3元。
我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。
注意:答案是一个整数。
请通过浏览器提交答案。
不要书写任何多余的内容(例如:写了饮料的数量,添加说明文字等)。
第二题标题:切面条一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。
不要填写任何多余的内容。
第三题标题:李白打酒话说大诗人李白,一生好饮。
幸好他从不开车。
一天,他提着酒壶,从家里出来,酒壶中有酒2斗。
他边走边唱:无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。
则:babaabbabbabbbb 就是合理的次序。
像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。
注意:通过浏览器提交答案。
答案是个整数。
不要书写任何多余的内容。
第四题标题:史丰收速算史丰收速算法的革命性贡献是:从高位算起,预测进位。
不需要九九表,彻底颠覆了传统手算!速算的核心基础是:1位数乘以多位数的乘法。
其中,乘以7是最复杂的,就以它为例。
因为,1/7 是个循环小数:0.142857...,如果多位数超过142857...,就要进1同理,2/7, 3/7, ... 6/7 也都是类似的循环小数,多位数超过n/7,就要进n下面的程序模拟了史丰收速算法中乘以7的运算过程。
乘以7 的个位规律是:偶数乘以2,奇数乘以2再加5,都只取个位。
乘以7 的进位规律是:满142857 (1)满285714 (2)满428571 (3)满571428 (4)满714285 (5)满857142... 进6请分析程序流程,填写划线部分缺少的代码。
蓝桥杯历届真题⽇志统计【第九届】【省赛】【B组】没有过多的技巧,我就是⼀个刷题的垃圾1 #include<bits/stdc++.h>2using namespace std;3bool vis[100010];4int ans;5struct node6 {7int ts;8int id;9 }a[100010];10bool cmp(node a,node b)//先排个序,如果编号相同的话就按照时间⼤⼩排序,否则按编号⼤⼩排序11 {12if(a.id==b.id)13return (a.ts<b.ts);14else15return a.id<b.id;16 }17int n,d,k;18int main()19 {20 ios::sync_with_stdio(false);21 cin>>n>>d>>k;22for(register int i=0;i<n;i++)23 {24 cin>>a[i].ts>>a[i].id;25 }26 sort(a,a+n,cmp);//排个序27for(register int i=0;i<n;i++)28 {29 ans=1;//它本⾝也是⼀个赞30if(!vis[a[i].id])// 没被标记过31 {32for(register int j=i+1;j<n;j++)33 {34if(a[i].id==a[j].id&&(a[j].ts<a[i].ts+d))//编号相等并且满⾜时间段35 {36 ans++;37 }38if(ans==k||a[i].id!=a[j].id)//剪枝39break;40 }41if(ans==k)//满⾜了最后的条件标记并且输出编号42 {43 vis[a[i].id]=true;//标记这个已经满⾜了44 cout<<a[i].id<<endl;//输出45 }46 }4748 }49return0;50 }。
蓝桥杯小明跳格子c语言求复杂度分析蓝桥杯小明跳格子 c 语言求复杂度分析,由于时间问题我们没有给出程序的源代码。
希望大家能够按照题目要求完成本文,谢谢大家!蓝桥杯比赛日期:2017年11月13日开始。
答案:0.02秒解题思路:1.首先我们使用数组来存储棋盘上的每一个格子的坐标值;2.然后按照格子的排列顺序遍历数组,输入格子对应的值;3.然后使用异或运算符,把格子中两个不同的坐标值交换位置,得到相加之和,然后减去交换前的结果;4.最后将结果赋值给变量 a,并且输出 a 的值即可。
小明所在队伍先以10:0领先了,但是随着比赛进行,他发现自己这边越下越慢,而对方那边却越下越快,很显然对手已经超过了他们。
为此,小明决定采取新战术——“跳格子”。
他让其余四名选手站好位置,轮流走动,只留下小明一人负责计时。
第二局比赛开始,小明便迅速地跑向对面的空白处,拿起黑色棋子放回原位,如此反复。
当小明再次返回时,棋子又被移动至另外一块空白区域。
就这样,小明通过重复执行上述步骤,逐渐拉近与对手的距离。
最终,小明率先赢得了胜利。
可是,当小明准备收拾东西离场时,却惊讶地发现对手竟还未走完全部的格子。
难道说……看来小明需要做更多的工作才能确保万无一失啊!那么接下来该怎么办呢?正巧,小明想起曾听老师讲过,在数学里面有一种叫做“复杂度”的概念,它指的是某项任务的规模、复杂性及耗费的资源等因素综合考虑的情况下,产生的一个最优解。
根据这些信息,小明推测,对手肯定也遇到了类似的困境,从而导致了整体效率降低。
既然如此,何不借助复杂度理论来帮忙找寻破局之法呢?小明马上查阅了相关资料,发现复杂度的概念十分广泛,涵盖了许多知识点,包括计算机科学、统计学、几何学、物理学甚至心理学等诸多领域。
于是,小明决定尝试着用复杂度理论来解释眼前的状况。
蓝桥杯初赛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 请严格按照格式书写。
[蓝桥杯2017初赛]兴趣⼩组题⽬描述为丰富同学们的业余⽂化⽣活,某⾼校学⽣会创办了3个兴趣⼩组(以下称A组,B组,C组)。
每个⼩组的学⽣名单分别在【A.txt】,【B.txt】和【C.txt】中。
每个⽂件中存储的是学⽣的学号。
由于⼯作需要,我们现在想知道:既参加了A组,⼜参加了B组,但是没有参加C组的同学⼀共有多少⼈?输⼊⽆输出输出⼀个整数表⽰答案答案:20题解:先分别数出A、B、C各有多少个数据(A=150,B=C=250);⽤map<string ,int>建⽴映射判断即可#include<iostream>#include<string>#include<algorithm>#include<math.h>#include<string.h>#include<map>#define ll long longusing namespace std;map<string,int>A;map<string,int>B;map<string,int>C;int main(){int ans=0,a=150,b=250,c=250;string s;while(a--){cin>>s;A[s]=1;}while(b--){cin>>s;B[s]=1;}while(c--){cin>>s;C[s]=1;}ll n=max(A.size(),max(B.size(),C.size()));map<string,int>::iterator it;for(it=A.begin();it!=A.end();it++)if(B.count(it->first)&&C.count(it->first)==0)ans++;cout<<ans<<endl;//cout<<20<<endl;return0;}。
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开始计数)。
X 星球的一处迷宫游乐场建在某个小山坡上。
它是由 10x10相互连通的小房间组成的。
房间的地板上写着一个很大的字母。
我们假设玩家是面朝上坡的方向站立,则:L 表示走到左边的房间,R 表示走到右边的房间,U 表示走到上坡方向的房间,D 表示走到下坡方向的房间。
X 星球的居民有点懒,不愿意费力思考。
他们更喜欢玩运气类的游戏。
这个游戏也是如此! 开始的时候,直升机把100名玩家放入一个个小房间内。
玩家一定要按照地上的字母移动。
迷宫地图如下:------------UDDLUULRULUURLLLRRRURRUURLDLRDRUDDDDUUUUURUDLLRRUUDURLRLDLRLULLURLLRDURDLULLRDDDUUDDUDUDLLULRDLUURRR------------请你计算一下,最后,有多少玩家会走出迷宫 ?而不是在里边兜圈子。
请提交该整数,表示走出迷宫的玩家数目,不要填写任何多余的内容。
如果你还没明白游戏规则,可以参看一个简化的 4x4迷宫的解说图:图 1迷宫2. 标题:跳蚱蜢有 9只盘子,排成 1个圆圈。
其中 8只盘子内装着 8只蚱蜢,有一个是空盘。
我们把这些蚱蜢顺时针编号为 1~8每只蚱蜢都可以跳到相邻的空盘中,也可以再用点力,越过一个相邻的蚱蜢跳到空盘中。
请你计算一下,如果要使得蚱蜢们的队形改为按照逆时针排列,并且保持空盘的位置不变(也就是 1-8换位, 2-7换位 ,... ) ,至少要经过多少次跳跃?注意:要求提交的是一个整数,请不要填写任何多余内容或说明文字。
图 2. 跳蚱蜢3. 标题:魔方状态二阶魔方就是只有 2层的魔方,只由 8个小块组成。
小明很淘气,他只喜欢 3种颜色,所有把家里的二阶魔方重新涂了颜色,如下:前面:橙色右面:绿色左面:绿色下面:橙色后面:黄色请你计算一下,这样的魔方被打乱后,一共有多少种不同的状态。
如果两个状态经过魔方的整体旋转后, 各个面的颜色都一致, 则认为是同一状态。
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%计算,余者类推。
特别地,半价是按50%计算。
请提交小明要从取款机上提取的金额,单位是元。
答案是一个整数,类似4300的样子,结尾必然是00,不要填写任何多余的内容。
特别提醒:不许携带计算器入场,也不能打开手机。
分析,如果用计算器,保准得半小时。
手打输入也是麻烦。
可以把数据复制进eclipse,然后ctrl+f 替换所有****,所有折字,再把半折替换成50,再把一位数的折数补0,,多少个数据就看行数。
ok。
其实可以直接读取文档数据来做,自己这方面不熟,2333[java]view plain copy1.import java.util.Scanner;2.3.public class test1 {4.5.public static void main(String[] args) {6. Scanner sc = new Scanner(System.in);7.float[][] nums = new float[100][2];8.float sum=0;9.for(int i=0;i<50;i++){10. nums[i][0]=sc.nextFloat();11. nums[i][1]=sc.nextFloat();12. }13.14.for(int i=0;i<50;i++){15. sum+=(nums[i][0]*nums[i][1]/100);16.17. }18. System.out.println(sum);19. }20.21.}22.23./*180.90 8824.10.25 6525.56.14 9026.104.65 9027.100.30 8828.297.15 5029.26.75 6530.130.62 5031.240.28 5832.270.62 8033.115.87 8834.247.34 9535.73.21 9036.101.00 5037.79.54 5038.278.44 7039.199.26 5040.12.97 9041.166.30 7842.125.50 5843.84.98 9044.113.35 6845.166.57 5046.42.56 9047.81.90 9548.131.78 8049.255.89 7850.109.17 9051.146.69 6852.139.33 6553.141.16 7854.154.74 8055.59.42 8056.85.44 6857.293.70 8858.261.79 6559.11.30 8860.268.27 5861.128.29 8862.251.03 8063.208.39 7564.128.88 7565.62.06 9066.225.87 7567.12.89 7568.34.28 7569.62.16 5870.129.12 5071.218.37 5072.289.69 80*/运行结果:5136.8594答案:52002,标题:纸牌三角形A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。
要求每个边的和相等。
下图就是一种排法(如有对齐问题,参看p1.png)。
A9 64 83 7 5 2这样的排法可能会有很多。
如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?请你计算并提交该数字。
注意:需要提交的是一个整数,不要提交任何多余内容。
这题没什么好说的,考前写好了暴力枚举模板,直接套答案:144[java]view plain copy1.public class test2 {2.3.public static void main(String[] args) {4.int sum = 0;5.for (int a = 1; a <= 9; a++)6.for (int b = 1; b <= 9; b++)7.for (int c = 1; c <= 9; c++)8.for (int d = 1; d <= 9; d++)9.for (int e = 1; e <= 9; e++)10.for (int f = 1; f <= 9; f++)11.for (int g = 1; g <= 9; g++)12.for (int h = 1; h <= 9; h++)13.for (int i = 1; i <= 9; i++)14.if (a + b + c + d == a + e + f +g && a + b + c + d == d + h + i + g) {15.if (a != b && a != c && a !=d && a !=e && a !=f && a !=g && a != h16. && a != i)17.if (b != c && b != d &&b != e && b != f && b != g && b != h18. && b != i)19.if (c != d && c != e&& c != f && c != g && c != h && c != i)20.if (d != e && d!= f && d != g && d != h && d != i)21.if (e != f && e != g && e != h && e != i)22.if (f !=g && f != h && f != i)23.if (g != h && g != i)24.if (h != i) {25.sum++;26.}27. }28. System.out.println(sum / 2 / 3);29.30. }31.32.}3,标题:承压计算X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。
每块金属原料的外形、尺寸完全一致,但重量不同。
金属材料被严格地堆放成金字塔形。
75 87 8 89 2 7 28 1 4 9 18 1 8 8 4 17 9 6 1 4 5 45 6 5 5 6 9 5 65 5 4 7 9 3 5 5 17 5 7 9 7 4 7 3 3 14 6 45 5 8 8 3 2 4 31 1 3 3 1 6 6 5 5 4 4 29 9 9 2 1 9 1 9 2 9 5 7 94 3 3 7 7 9 3 6 1 3 8 8 3 73 6 8 1 5 3 9 5 8 3 8 1 8 3 38 3 2 3 3 5 5 8 5 4 2 8 6 7 6 98 1 8 1 8 4 6 2 2 1 7 9 4 2 3 3 42 8 4 2 2 9 9 2 834 9 6 3 9 4 6 97 9 7 4 9 7 6 6 2 8 9 4 1 8 1 7 2 1 69 2 8 6 4 2 7 9 5 4 1 2 5 1 7 3 9 8 3 35 2 167 9 3 289 5 5 6 6 6 2 1 8 7 9 96 7 1 8 8 7 5 3 6 5 4 7 3 4 6 7 8 1 3 2 7 42 2 63 5 34 9 2 45 76 6 3 27 2 48 5 5 47 4 4 5 8 3 3 8 1 8 6 3 2 1 6 2 6 4 6 3 8 2 9 61 2 4 1 3 3 5 3 4 9 6 3 8 6 5 9 1 5 3 2 6 8 8 5 32 2 7 93 3 2 8 6 9 84 4 95 8 26 3 4 8 4 9 3 8 87 7 7 9 7 5 2 7 9 2 5 1 9 2 6 5 3 9 3 5 7 3 5 4 2 8 97 7 6 6 8 7 5 5 8 2 4 7 7 4 7 2 6 9 2 1 8 2 9 8 5 7 3 6 5 9 4 5 5 7 5 5 6 3 5 3 9 5 8 9 5 4 1 2 6 1 4 3 5 3 2 4 1 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X其中的数字代表金属块的重量(计量单位较大)。