当前位置: 首页 > news >正文

蓝桥杯备赛日记【day1】(c++赛道)

一、裁纸刀问题(2022、规律、思维、省赛)


解法思路:

        参考题目给出的例子发现。不管要裁剪多少次。最外围的四次是固定的。然后通过观察发现,我们的行的裁剪次数为(m-1) 次,而每行都需要裁剪列数即(n-1)次。所以总共需要裁剪的次数就为(m-1)+m*(n-1)+4次。故能将上题解出。

代码描述:

#include <bits/stdc++.h>
using namespace std;
int main()
{
  // 请在此输入您的代码
  int m,n;
  cin>>m>>n;
  cout<<(m-1)+m*(n-1)+4;
  return 0;
}

二、数位和【省赛模拟】(2023 模拟 省模拟赛)


解法思路:

        将本题拆分成如下几个子问题:

  • 判断一个数是不是素数。
  • 多少个素数各个数位上的和=23。 

        所以我们对照问题我们就得首先定义个判断素数的函数,再通过将素数转化成“串”来遍历累加。如果刚好等于23则计数变量++

代码描述

#include<bits/stdc++.h>
using namespace std;
//设置判断素数的函数
bool is_prime(int x)
{
	if (x < 2){
         return false;
    }
	for (int i = 2; i<=x / i; i++)
	{
		if (x%i == 0)
		{
			return false;
		}
	}
	return true;
}

int main(){
    int num=0,count=0,tem=0;
    for(int i=1;i=<1000000;i++){
        if(is_prime(i)){
            tem=i;
            string S=to_string(tem);    //利用to_string()函数将tem转化成S;
            //利用迭代器p遍历字符串S对其进行累加。
            for(auto p=S.begin();p!=S.end();p++){
                num+=*p-48;    //因为字符类型的ascll码要大48,所以要将其减去。
            }
            if(num==23){
                count++;
            }
    cout<<sum;
    return 0;
}

三、 最少步数【省模拟赛】(2023 贪心 省模拟赛)


解题思路:

        本题是一个简单的贪心算法问题,对本题进行贪心运算就能解出。

代码描述

#include <bits/stdc++.h>
//利用贪心算法将能走的步数排列
using namespace std;
int min(int n){
   int count=0,sum2=0,tem1=0;
  sum2=n%3;       //算出最多走3级阶梯后剩余的阶梯数
  tem1=sum2%2;    //算出最多走2级阶梯后剩余的阶梯数
  count=n/3+sum2/2+tem1;//将三次走的步数相加
  return count;
}
int main()
{
  // 请在此输入您的代码
  int n;
  cin>>n;
 int count=0;
 count=min(n);
 cout<<count;
  return 0;
}

 四、握手问题(省赛 数学 2024)


解题思路:

        这道题很简单,只需要举几个例子。第一个人跟剩下49个人握手,第二个人由于已经跟第一个人握手了,所以只跟剩下的47人握手。依次类推到最后七个人。因为没有互相握手,所以次数都是0.所以我们发现,这就是个简单的累加问题

代码描述:

#include <bits/stdc++.h>
using namespace std;
int main(){
    int sum=0;
    for(int i=7;i<=49;i++) sum+=i;
    cout<<sum;
    return 0;
}

五、 好数(暴力 枚举 省赛 2024)


解题思路:

        设置两个函数,通过递归来判断奇偶是否符合条件然后来判断是否符合好数

代码描述:

#include <bits/stdc++.h>
using namespace std;
bool fun_1(int a){  //判断奇数位
  int x=a;
  if(x!=0){
    if(x%2!=0){
      x/=100;
      return fun_1(x);
    }
    else{
      return false;
    }
  }
    else {
      return true;
    }
}
bool fun_2(int b){ //判断偶数位
  int y=b;
  if(y!=0){
    y/=10;
    if(y%2==0){
      y/=10;
      return fun_2(y);
    }
    else{
      return false;
    }
  }
  else{
    return true;
  }
}
int main()
{
  // 请在此输入您的代码
  int N,num=0;
  cin>>N;
  for(int i=1;i<=N;i++){
    if(fun_1(i)&&fun_2(i)) num++;
  }
  cout<<num;
  return 0;
}

相关文章:

  • 解决VScode 连接不上问题
  • OpenWrt 源码目录分析与最终文件系统分析
  • CSS Web安全字体
  • Jump( 2015-2016 ACM-ICPC Northeastern European Regional Contest (NEERC 15). )
  • Autosar技术栈总目录
  • 系统安全阶段练习真题(高软44)
  • 基于DeepSeek与搜索引擎构建智能搜索摘要工具
  • c++:迭代器的失效
  • 星舰(Starship)近地轨道运力极限分析
  • 电路常用常用的定理/定律/计算方法
  • 【开源免费】基于SpringBoot+Vue.JS青年公寓服务平台(JAVA毕业设计)
  • 安装树莓派3B+环境(嵌入式开发)
  • FPGA学习篇——Verilog学习特别篇1(实现功能篇)
  • 神经网络为什么要用 ReLU 增加非线性?
  • CI/CD—Jenkins、Maven安装
  • 【Java代码审计 | 第八篇】文件操作漏洞成因及防范
  • 深入解析 JavaScript 原型与原型链:从原理到应用
  • 10.2 继承与多态
  • NoSQL数据库系统Cassandra学习笔记
  • 游戏分析:h5页游
  • 别人做的网站怎么打开吗/广安百度推广代理商
  • 如何做微信网站建设/seo技巧分享
  • 网站建设熊掌号里属于什么领域/seo谷歌外贸推广
  • 成品网站/网站seo哪家做的好
  • 微信里的网站怎么做/seo推广经验
  • 万网主机 wordpress/关键词优化好