蓝桥杯c++试题a组,蓝桥杯c++b组试题

  蓝桥杯c++试题a组,蓝桥杯c++b组试题

  第十届蓝桥杯C B组题目分析及答案

  第一个问题:

  作为篮球队的教练,你需要从下面的列表中选择1号位到5号位的一名球员,

  组成球队首发阵容。

  每个玩家在1号到5号位置的得分如下表所示。请计算首发阵容1。

  5号到5号的分数最大可能和是多少?

  方法:excel

  答案:490

  (计算每列的最大值并加上()。这是不小心,但这是错误的。)

  第二个问题:

  小明的字母A对应数字1,B对应2,以此类推,Z对应26。27岁

  对于以上数字,小明用一串两个或两个以上的数字来对应,比如AA对应27,AB对。

  应该是28,阿兹对应52,LQ对应329。

  2019对应的弦是什么?

  思路:十进制换算(折腾除法3354除以26)

  答案:BYQ

  第三个问题:

  给定序列1,1,1,3,5,9,17,…,从第4项开始,每一项都是前3项之和。要求

  项目20190324的最后4位数字。

  思路:斐波那契数列(三项),每次得到的数据是000。

  答案:4659

  #包括

  #包括

  使用命名空间std

  int a[2019 03 24];

  int main(){

  a[1]=1;

  a[2]=1;

  a[3]=1;

  for(int I=4;i=20190324i) {

  a[I]=(a[I-1]a[I-2]a[I-3])% 10000;

  }

  printf(%d\n ,a[2019 03 24]);

  返回0;

  }第四个问题:

  2019分解为三个不同的正整数之和,要求每个正整数都是唯一的。

  包括数字2和4,有多少种不同的分解方法?

  注意交换3个整数的顺序视为同一方法,如1000 1001 18和

  1001 10018算是同类。

  思路:求范围内不包含2和4的数之和(string find==string:npos)

  答案:40785

  参考代码:

  #包括

  #包括

  #包括

  使用命名空间std

  int a[2020];

  void i2s(int i,string s){

  stringstream流;

  流I;

  流s;

  }

  int main(){

  字符串str

  int len=0;

  for(int I=1;i 2019i) {

  i2s(我,str);

  if(str . find( 2 )==string:NPOs str . find( 4 )==string:NPOs)a[len]=I;

  }

  //for(int j=0;j lenj) {

  //printf(%d\n ,a[j]);

  //}

  int ans=0;

  for(int j=0;j lenj) {

  for(int I=j 1;我leni) {

  for(int k=I 1;k lenk) {

  if(a[I]a[j]a[k]==2019)ans;

  }

  }

  }

  printf(%d ,ans);

  返回0;

  }第五个问题:

  创意:BFS

  答:ddddrrrrrrrrrrrrrrrrrrrdddddddddddddddddrrrrrrrrrrrrrrrddrrrrrrrrrrrrrrrrrrrrddrrddrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrddrrrrrrrrrrddrrrrrrrrrrrrddrrrrddrrrrrrrrddrrrrrrddrrrrrrddrrrrddrrrrddrrrrddrrrrddrrrrddrrrrddrrrrddrrrrddrrddrrrrddrrddrrddrrddrrddrrddrrddrrddrrddrrddrrddrrddrrddrrddrrddrrddrrddr

  参考代码:

  #包括

  #包括

  #包括

  #包括

  使用命名空间std

  int m,n;

  char MP[510][510];//地图

  bool vis[510][510]={ false };//标记是否被访问过。

  int dir[4][2]={{1,0},{0,-1},{0,1},{-1,0 } };//移动方向,参考字典顺序。

  char dirc[4]={D , L , R , U };//按照字典顺序,上下左右排序。

  结构点{//结构问题:坐标x,y,步数step,路径字符串

  int x,y,step

  字符串str

  Point(int _x,int _y,int _step,string _str):x(_x),y(_y),step(_step),str(_str){}

  };

  队列点q;

  void bfs(int x,int y){

  q.push(Point(x,y,0, ));//将起始位置推入堆栈

  vis[x][y]=true;//标记为已访问

  而(!Q.empty()){//堆栈不为空时循环

  点now=q . front();//获取当前队列头元素

  q . pop();//获取团队元素的信息,出列。

  If(now.x==m-1 now.y==n-1){//当位置到达末尾时,输出

  printf(%d\n ,now . step);

  cout now.str endl

  打破;

  }

  for(int I=0;I 4;I) {//在四个方向遍历数组,依次是下、左、右、上。

  int dx=now . x dir[I][0];//移动后的横坐标

  int dy=now . y dir[I][1];//移动的纵坐标

  //当位置越界、已访问或不可通行时,重新开始循环。

  if(dx 0 dx=m dy 0 dy=n vis[dx][dy]==true MP[dx][dy]= 1 )

  继续;

  Else{//将当前位置推入队列,并将其标记为已访问

  q.push(Point(dx,dy,now.step 1,now . str dirc[I]);

  vis[dx][dy]=true;

  }

  }

  }

  }

  int main(){

  scanf(%d%d ,m,n);//输入地图的行和列

  for(int I=0;我是m;I) {//进入地图

  scanf(%s ,MP[I]);

  }

  bfs(0,0);

  返回0;

  }

  第六题:

  思路:求一个范围内,包含2019的数字这四个数字的之和(字符串find==string:npos)

  参考代码:

  #包括

  #包括

  #包括

  使用命名空间标准

  int a[2020];

  void i2s(int i,string s){

  字符串流流;

  流我;

  流s;

  }

  int main(){

  int n;

  scanf(%d ,n);

  字符串潜艇用热中子反应堆(submarine thermal reactor的缩写)

  int len=0;

  for(int I=1;I=n;i) {

  i2s(我,str);

  if(str.find(2 )!=string:npos str.find(0 )!=string:npos

   str.find(1 )!=string:npos str.find(9 )!=string:NPO)

  a[len]=I;

  }

  long long ans=0;

  //printf(%d\n ,len);

  for(int j=0;lenj) {

  ans=a[j];

  }

  printf(%lld ,ans);

  返回0;

  }第七题:

  思路:根据每次输入比较,最后输出最大的层数(:完全二叉树,不一定是满二叉树【每一层都是2^n】)

  参考代码:

  #包括

  #包括

  typedef long long LL

  int main(){

  int n;

  scanf(%d ,n);

  LL最大值=长时间最小值

  LL max _ depth=0;

  for (int i=0,深度=1,长度=1;I n;我,深度,长度*=2) {

  LL sum=0;

  for(int j=0;j长度I n;j,i ) {

  LL x;

  scanf(%lld ,x);

  sum=x;

  }

  if(sum max_value){

  最大值=总和

  最大深度=深度;

  }

  }

  printf(%lld\n ,max _ depth);

  返回0;

  }第八题:

  后缀和,求一组数字加上、-号的最大值。(分类讨论)

  #包括

  #包括

  使用命名空间标准

  int gcd(int a,int b){//求最小公约数

  return b==0?a : gcd(b,a % b);

  }

  int a[100005];

  int main(){

  int n;

  scanf(%d ,n);

  for(int I=0;I n;i) {

  scanf(%d ,a[I]);

  }

  sort(a,a n);//从小到大排序

  int temp=a[0];

  for(int j=1;j n;j) {//每一项减去首项

  a[j]-=temp;

  }

  int d=a[1];//公差

  for(int k=2;k n;k) {//根据an=a1 (n -1)*d - an - a1=(n-1)*d

  d=gcd(d,a[k]);

  }

  if(d==0){

  printf(%d ,n);

  }否则{

  printf(%d ,a[n-1]/d 1);//根据an=a1(n-1)* d-n=(an-a1)/n-1

  }

  返回0;

  }第九题:

  第十题:

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: