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

简介: 大家好,我是泡泡,今天给大家带来今日打卡三道题的题解

一、纯质数


题目链接:纯质数 - 蓝桥云课 (lanqiao.cn)


题目要求:


如果一个正整数只有 11 和它本身两个约数,则称为一个质数(又称素数)。


前几个质数是:2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, · · ·


如果一个质数的所有十进制数位都是质数,我们称它为纯质数。例如:2,3, 5, 7, 23, 37都是纯质数,而 11, 13, 17, 19, 29, 31 不是纯质数。当然 1, 4, 35 也不是纯质数。


请问,在 1 到 20210605 中,有多少个纯质数?


解题思路:


此题目是一个质数筛题,暴力即可通过,题目要求所有数位都是质数并且该数是质数才可称为纯质数,所以我们要写两个函数,第一个函数是判断这个数的数位是不是质数,第二个函数判断这个数是否是质数,最后从2到2021065枚举出来就好了。(如果先判断质数再判断数位会很慢)


代码:


#include<bits/stdc++.h>
using namespace std;
bool pd(int n)//此函数为判断数位是否为质数
{
    while(n)
  {
        int m = n%10;
        if(m==0||m==1||m==4||m==6||m==8||m==9)//这些数不是质数 如果任何一位等于这几个数
        {//直接返回false;
          return false;
  }
        n/=10;
    }
    return true;
}
bool zhishu(int x)//此函数为判断质数的函数
{
  for(int i=2;i<=sqrt(x);i++)//最简单的筛法
  {
  if(x%i==0)
  {
    return false;
  }
  }
  return true;
}
int main()
{
    int sum = 0;
    for(int i=2;i<=20210605;i++)//枚举
    {
      if(pd(i)&&zhishu(i))//如果两个条件都满足了才算是纯质数
      {
    sum++;
  }
  }
  cout<
  return 0;
}


二、最少砝码


题目链接:最少砝码 - 蓝桥云课 (lanqiao.cn)


题目要求:


你有一架天平。现在你要设计一套砝码,使得利用这些砝码可以称出任意 小于等于 N 的正整数重量。


那么这套砝码最少需要包含多少个砝码?


注意砝码可以放在天平两边。


解题思路:


这道题可以用动态规划和找规律贪心来做,动态规划有点难了就不写了,这里写出来找规律的做法。


如果当n=1时,只用一个砝码就可以。


当n=2时候,我们要用两个砝码,两个重量为1的砝码即可,但是我们要贪心,我们可以选择更合适的1和3,因为3-1是2,这样范围就变成了1234。


当n=5的时候1 3就不行了,这个时候需要再加入一个砝码,能配合1 3表示5并且能满足贪心的砝码是9,最大的表示范围则是9+3+1=13。


此时我们就找到规律了,1*3=3,3*3=9,可能你觉得三个例子不够规律,那么如果要表达14,3*9=27,27-13=14,可以看得出规律了吧。


代码:


#include<bits/stdc++.h>
using namespace std;
int main()
{             
    int n;
    cin>>n;
    int ans = 1,num = 1,sum = 1; //ans是保存用了几个砝码 num是新的砝码的重量 sum是砝码最高可以表示的值,因为如果n=1只有一种方法我们就初始化为1.
    while(1)
    {
      if(sum>=n)//如果最高表示的值大于等于n
  {
    break;//跳出循环
  }
  ans++;//砝码+1
  num *= 3;//砝码重量遵循上面的规律
  sum += num;//sum加上新的砝码重量
    }      
    cout<
    return 0;                   
}


三、灌溉


题目链接:灌溉 - 蓝桥云课 (lanqiao.cn)


题目要求:


小蓝负责花园的灌溉工作。


花园可以看成一个 n 行 m 列的方格图形。中间有一部分位置上安装有出水管。


小蓝可以控制一个按钮同时打开所有的出水管,打开时,有出水管的位置可以被认为已经灌溉好。


每经过一分钟,水就会向四面扩展一个方格,被扩展到的方格可以被认为已经灌溉好。即如果前一分钟某一个方格被灌溉好,则下一分钟它上下左右的四个方格也被灌溉好。


给定花园水管的位置,请问 kk 分钟后,有多少个方格被灌溉好?


解题思路:


这道题是道很简单的模拟,也可以多源bfs,但是咱们不是为了秀技术而是为了大家都能看懂,所以用模拟来做。


首先我们把n行m列的图形表示出来,比如3 6


000000


000000


000000


水管位置如果在2 2 3 4


000000


010000


000100


两个水管 一分钟之后


010000


111010


011110


灌溉了九个区域


相信大家都可以理解了灌溉过程 那么我们只需要设计一个灌溉上下左右四个方向的函数,定义一个保存数组,如果被灌溉了就把这个位置改为1,然后枚举即可,因为一分钟单独计算有点麻烦所以我们在输入的过程中就把它判断了,然后定义一个保存灌溉数量的变量,两层循环遍历整个区域,如果被灌溉了就加1,这样就ac了。


代码:


#include<bits/stdc++.h>
using namespace std;
int a[101][101];
int n,m,t,k,sum;//n和m是范围 t是水管数量 k是时间 sum是有多少方格被灌溉好
void dfs(int x,int y)
{
 a[x][y]=1;//标记原地为1表示已经灌溉
//下面四个上下左右
 if(!a[x-1][y])
 {
  a[x-1][y]=1;
 }
 if(!a[x+1][y])
 {
  a[x+1][y]=1;
 }
 if(!a[x][y-1])
 {
  a[x][y-1]=1;
 }
 if(!a[x][y+1])
 {
  a[x][y+1]=1;
 }
}
int main()
{
 cin>>n>>m;
 cin>>t;
 for(int i=1;i<=t;i++)
 {
     int x,y;
     cin>>x>>y;//水管的位置
     dfs(x,y);//一分钟就不拿出来单独算了 如果只有一分钟只有输入的水管位置上下左右会灌溉
        //所以在输入的时候直接把水管所在的位置和其上下左右灌溉
 }
    cin>>k;
    if(k>1)//如果时间超过一分钟
    {
     int num = k-1;//定义一个变量保存时间 上面做了一分钟的灌溉就
        while(num--)
        {
         for(int i=1;i<=n;i++)
         {
    for(int j=1;j<=m;j++)
             {
                 if(a[i][j])//查找所有的范围 如果被灌溉了就进入去灌溉该区域的上下左右
                 {
                  dfs(i,j);
              }
             }
            }
        }
    }
    for(int i=1;i<=n;i++)
    {
     for(int j=1;j<=m;j++)
     {
      if(a[i][j])//如果被灌溉了 sum++ 最后就是总共的灌溉区域
      {
       sum++;
   }
  }
 }
 cout<<sum;
 return 0;
}


目录
相关文章
|
机器学习/深度学习 人工智能 BI
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十七天
大家好 我是泡泡 倒数六天 蓝桥开赛!记得打印准考证!
119 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十七天
|
算法
蓝桥杯真题31日冲刺国一 | 每日题解报告 第三十一天
大家好啊,我是泡泡,今天是我们蓝桥杯打卡最后一天了,后天也就比赛了,明天大家把各种类型的题目复习一下,我中午会发出最后一篇复习文章,希望各位能拿到自己想要的成绩!陪伴大家这么久了,以后也会继续更新优质算法文章等,各位也不要忘记初心,不要为了比赛而比赛,学到东西才是王道!
185 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第九天
大家好,我是泡泡,今天的题有些考验思维
118 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第九天
|
人工智能 机器人 定位技术
蓝桥杯真题31日冲刺国一 | 每日题解报告 第十天
大家好我是泡泡,今天给大家带来船新的题解
128 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第十天
|
机器学习/深度学习 决策智能
蓝桥杯真题31日冲刺 | 每日题解报告 第三天
大家好,我是泡泡,今天是蓝桥杯真题第三天,给大家带来详细的题解
97 0
蓝桥杯真题31日冲刺 | 每日题解报告 第三天
|
编译器
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十天
大家好,我是泡泡,快到比赛了,大家练的怎么样了呢,放平心态不要紧张不要沮丧!
130 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十天
|
人工智能
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十一天
大家好,我是泡泡,今天有点忙题解来晚了!
80 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十一天
|
机器学习/深度学习
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十八天
大家好,我是泡泡,距离蓝桥杯还有五天,大家一定要坚持下去
124 0
蓝桥杯真题31日冲刺国一 | 每日题解报告 第二十八天
|
机器学习/深度学习
蓝桥真题31日冲刺 | 每日三题题解报告 第二天
大家好,我是泡泡,今天给大家带来今日打卡的四道题的题解
155 0
|
存储
蓝桥杯真题31日冲刺 | 每日题解报告 第七天
大家好,我是泡泡,今天水一文,明天出两章
145 0