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

蓝桥杯备赛日记【1】(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;
}


http://www.mrgr.cn/news/93974.html

相关文章:

  • MySQL的安装及配置
  • docker私有仓库配置
  • delphi 正则提取html中的内容
  • Hugging Face的Transformers核心模块:Pipelines(参数说明,各种模型类型调用案例)
  • 『PostgreSQL』 Ubuntu 系统下PG15的安装与 PGVector 配置指南
  • 01.02、判定是否互为字符重排
  • Word 小黑第2套
  • 仅仅使用pytorch来手撕transformer架构(2):多头注意力MultiHeadAttention类的实现和向前传播
  • NX二次开发,创建基准平面
  • 正则表达式(2)匹配规则
  • ①Modbus TCP转Modbus RTU/ASCII网关同步采集无需编程高速轻松组网
  • AI学习记录 - PPO算法草稿
  • LiveCommunicationKit OC 实现
  • 力扣热题 100:二叉树专题进阶题解析(后7道)
  • 23种设计模式简介
  • Liunx(CentOS-6-x86_64)使用Nginx部署Vue项目
  • VUE3开发-9、axios前后端跨域问题解决方案
  • 英语学习(GitHub学到的分享)
  • 滑动窗口算法-day7(越长越合法子数组)
  • 18、函数的反柯里化