蓝桥杯真题31日冲刺 | 每日题解报告 第三天

简介: 大家好,我是泡泡,今天是蓝桥杯真题第三天,给大家带来详细的题解

一、年龄巧合


题目链接: 年龄巧合 - 蓝桥云课 (lanqiao.cn)


题目要求:


小明和他的表弟一起去看电影,有人问他们的年龄。小明说:今年是我们的幸运年啊。我出生年份的四位数字加起来刚好是我的年龄。表弟的也是如此。已知今年是 2014年,并且,小明说的年龄指的是周岁。


请推断并填写出小明的出生年份。


解题思路:


一个暴力水题,让年份每个数字相加并且加上当前年份减去年份相加的岁数等于2014,那就是正确年龄,取离2014最近的两个就是表弟和小明的年龄,咱们的代码只输出小明的年龄。


#include<bits/stdc++.h>
using namespace std;
int pd(int x)//年份每个数字相加
{
  int z = 0;
  while(x)
  {
  z+=x%10;
  x/=10;
  }
  return z; 
}
int main()
{
  int n=2014,sum=0,max=2014,min=0;
  for(int i=2013;i>0;i--)//从2013开始
  {
  if(i+pd(i)==n&&i
  {
    max = i;//让当前年份等于max
    min++;//计算是第几次的年龄,如果是第二次就可以跳出循环了,这就是小明的年龄
    if(min==2)
    {
    break;
    }
  }
  } 
  cout<
  return 0;
}


二、纸牌三角形


题目链接:纸牌三角形 - 蓝桥云课 (lanqiao.cn)


题目要求:


A,2,3,4,5,6,7,8,9 共 9张纸牌排成一个正三角形(A 按 1 计算)。要求每个边的和相等。 下图就是一种排法。


3de2ce7dc2768244726afede54419492.png


这样的排法可能会有很多。


如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?


请你计算并提交该数字。


解题思路:


一个简单的dfs全排列,如果不懂得可以去搜一下全排列学习一下,使用函数固然方便但是手敲全排列可以巩固记忆。


#include<bits/stdc++.h>
using namespace std;
int sum,arr[10],pd[10];//一个纸牌数组,一个用来判断的数组
void dfs(int x)
{
  if(x>9)//如果搜索的数字已经超过9个
  {
        int a1 = arr[1] + arr[2] + arr[3] + arr[4];
        int a2 = arr[4] + arr[5] + arr[6] + arr[7];
        int a3 = arr[7] + arr[8] + arr[9] + arr[1];  
  if(a1==a2&&a1==a3)//让三条边相加 判断第一条边和第二条 第一条和第三条
  {
    sum++;//如果他们相等 三角形成立 ++
  }
        return;//返回
  }
    for(int i=1;i<=9;i++)//如果没超过九个
    {
      if(pd[i]==0)//进入循环之后如果当前数字没有用过
      {
      pd[i] = 1;//标记用过
      arr[x] = i;//选择它
      dfs(x+1);//搜索下一个数字
      pd[i] = 0;//回溯
      arr[x] = 0;
  }
  }
}
int main()
{
    dfs(1);
    cout<<sum/6;//除6是因为旋转重复三次 镜像重复两次 2*3等于6
    return 0;
}


三、取球游戏


题目链接:取球游戏 - 蓝桥云课 (lanqiao.cn)


题目要求:


今盒子里有 nn 个小球,A、B 两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断。


我们约定:


每个人从盒子中取出的球的数目必须是:1,3,7 或者 8 个。轮到某一方取球时不能弃权!A 先取球,然后双方交替取球,直到取完。被迫拿到最后一个球的一方为负方(输方)


请编程确定出在双方都不判断失误的情况下,对于特定的初始球数,A 是否能赢?


解题思路:


这是一个入门的博弈论,非常简单,如果只有一个球的时候,A必输,而当球数是1+1,1+3,1+7,1+8 时 A可分别取1,3,7,8,使得后手输,所以就很简单了,记录一下这些数字即可


#include<bits/stdc++.h>
using namespace std;
int a[101],b[10001];
int main()
{
  int n;
  cin>>n;
  for(int i=0;i
  {
  cin>>a[i];
  }
  for(int i=1;i<10001;i++)
  {
  if(b[i]==0)
  {
    b[i+1]=1;//标记一下这几个数字为1,和前几天的简单哈希有点像
    b[i+3]=1;
    b[i+7]=1;
    b[i+8]=1;
  }
  }//开大点 肯定博弈不了那么多
  for(int i=0;i
  {
  cout<<b[a[i]]<<endl;//输出a[i]上对应的数字,那就是游戏输赢
  }
  return 0;
}


总结


今天的三道题不算很难,但是也需要熟练掌握!加油!为了国一!


目录
相关文章
|
存储
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-填空题
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-填空题
108 1
|
测试技术
【蓝桥杯冲刺】蓝桥杯13届省赛C++b组真题-A~E题
【蓝桥杯冲刺】蓝桥杯13届省赛C++b组真题-A~E题
145 0
|
人工智能 测试技术 BI
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-编程题
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-编程题
112 0
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-填空题
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-填空题
129 0
【蓝桥杯冲刺】日期类专题特训
【蓝桥杯冲刺】日期类专题特训
46 0
|
人工智能 测试技术
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-编程题
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-编程题
110 0
|
机器学习/深度学习 存储 测试技术
蓝桥杯冲刺-倒数第八天-省赛题
蓝桥杯冲刺-倒数第八天-省赛题
118 0
|
机器学习/深度学习 人工智能 BI
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十七天
大家好 我是泡泡 倒数六天 蓝桥开赛!记得打印准考证!
122 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十七天
|
机器学习/深度学习 Python
【蓝桥杯真题】16天冲刺 Python
【蓝桥杯真题】16天冲刺 Python
218 0
【蓝桥杯真题】16天冲刺 Python
|
算法 Python 容器
【蓝桥杯真题】18天Python组冲刺 心得总结
【蓝桥杯真题】18天Python组冲刺 心得总结
186 0
【蓝桥杯真题】18天Python组冲刺 心得总结
下一篇
DataWorks