C/C++蓝桥杯算法真题打卡(Day8)

一、P8780 [蓝桥杯 2022 省 B] 刷题统计 - 洛谷

算法代码:

#include<bits/stdc++.h>  // 包含标准库中的所有头文件,方便使用各种数据结构和算法
using namespace std;     // 使用标准命名空间,避免每次调用标准库函数时都要加 std::int main() {long long a, b, n;   // 定义长整型变量 a, b, n,分别表示工作日每天的题目数量、周末每天的题目数量和目标题目数量cin >> a >> b >> n;  // 从标准输入读取 a, b, n 的值long long week = 5 * a + 2 * b; // 计算一周内(5个工作日和2个周末)小明总共能完成的题目数量long long fullWeeks = n / week; // 计算完成目标题目数量 n 需要多少个完整的周long long remaining = n % week; // 计算完成完整周数后,剩余的题目数量long long days = fullWeeks * 7; // 计算完整周数对应的天数(一周7天)if (remaining > 0) { // 如果剩余的题目数量大于0,则需要额外计算完成这些题目所需的天数for (int i = 1; i <= 7; ++i) { // 遍历一周的7天(周一到周日)if (i <= 5) {              // 如果是周一到周五(前5天)remaining -= a;        // 减去工作日每天完成的题目数量 a} else {                   // 如果是周六或周日(后2天)remaining -= b;        // 减去周末每天完成的题目数量 b}days++;                     // 每过一天,总天数加1if (remaining <= 0) {       // 如果剩余的题目数量小于等于0,说明题目已经完成break;                 // 跳出循环}}}cout << days << endl; // 输出总天数return 0;             // 程序正常结束
}

代码逻辑总结:

  1. 输入处理:读取小明每天完成的题目数量 a 和 b,以及目标题目数量 n。

  2. 周计算:计算一周内小明能完成的题目总数,并计算需要多少个完整的周才能完成 n题。

  3. 剩余题目处理:计算完成完整周数后剩余的题目数量,并逐天计算完成这些剩余题目所需的天数。

  4. 输出结果:输出完成 n 题所需的总天数。

二、P8795 [蓝桥杯 2022 国 A] 选素数 - 洛谷 

题解:(还是看大佬的思路代码吧,我的水平接触不到国赛,但还是可以学习一下的)

#include<bits/stdc++.h>  // 包含标准库中的所有头文件,方便使用各种数据结构和算法
#define ri register int  // 定义宏 ri,表示寄存器变量 int,用于优化性能
#define maxn 1000005     // 定义宏 maxn,表示数组的最大大小为 1000005
#define inf 0xffffff     // 定义宏 inf,表示一个较大的值(0xffffff)
using namespace std;     // 使用标准命名空间,避免每次调用标准库函数时都要加 std::// 快速读入函数,用于从标准输入读取一个整数
inline int read(){int x=0,f=1;         // x 用于存储结果,f 用于存储符号(正负)char ch=getchar();   // 读取一个字符while(ch<'0'||ch>'9'){ // 如果字符不是数字if(ch=='-')      // 如果是负号f=-1;        // 设置 f 为 -1ch=getchar();   // 继续读取下一个字符}while(ch>='0'&&ch<='9'){ // 如果字符是数字x=x*10+ch-48;    // 将字符转换为数字并累加到 xch=getchar();    // 继续读取下一个字符}return x*f;         // 返回结果(考虑符号)
}// 快速输出函数,用于将一个整数输出到标准输出
inline void write(int n){if(n<0){            // 如果 n 是负数putchar('-');   // 输出负号n=-n;           // 取绝对值}if(n>9)             // 如果 n 是多位数write(n/10);    // 递归输出高位putchar(n%10+'0');  // 输出最低位
}int n;                  // 定义全局变量 n,表示输入的上限
int np[maxn];           // 定义数组 np,用于存储每个数的最小质因数
vector<int>pri;         // 定义向量 pri,用于存储质数// 初始化函数,用于生成质数并计算每个数的最小质因数
void init(){for(ri i=2;i<=n;i++){ // 遍历从 2 到 n 的所有数if(!np[i]){      // 如果 i 是质数pri.push_back(i); // 将 i 加入质数向量np[i]=i;     // 设置 i 的最小质因数为 i}for(auto j:pri){ // 遍历所有质数if(i*j>n)break; // 如果 i*j 超过 n,跳出循环np[i*j]=max(max(np[i*j],j),np[i]); // 更新 i*j 的最小质因数if(!(i%j))break; // 如果 j 是 i 的质因数,跳出循环}}
}// zy 数组,用于存储某个计算结果
int zy[maxn];// 主函数
signed main(){n=read();           // 读取输入的 ninit();             // 调用初始化函数for(ri i=2;i<=n;i++){ // 遍历从 2 到 n 的所有数if(np[i]^i)     // 如果 i 不是质数zy[i]=i-np[i]+1; // 计算 zy[i] 的值else zy[i]=i;   // 如果 i 是质数,zy[i] 等于 i}int mini=inf;       // 定义变量 mini,用于存储最小值,初始值为 infif(np[n]==n||!np[n]) // 如果 n 是质数或 np[n] 为 0write(-1);      // 输出 -1else{for(ri i=n-np[n]+1;i<=n;i++) // 遍历从 n-np[n]+1 到 n 的所有数if(np[i]!=i)mini=min(mini,zy[i]); // 更新 miniwrite(mini);    // 输出 mini}return 0;           // 程序正常结束
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/72860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript 编程:从基础到高级应用的全面探索

引言 JavaScript 作为一种广泛应用于 Web 开发的脚本语言&#xff0c;已经成为现代互联网不可或缺的一部分。它不仅可以为网页增添交互性和动态效果&#xff0c;还能在服务器端&#xff08;如 Node.js&#xff09;进行后端开发。本文将从 JavaScript 的基础语法开始&#xff0…

第十三次CCF-CSP认证(含C++源码)

第十三次CCF-CSP认证 跳一跳满分题解 碰撞的小球满分题解遇到的问题 棋局评估满分题解 跳一跳 题目链接 满分题解 没什么好说的 基本思路就是如何用代码翻译题目所给的一些限制&#xff0c;以及变量应该如何更新&#xff0c;没像往常一样给一个n&#xff0c;怎么读入数据&…

Pytorch使用手册—自定义函数的双重反向传播与自定义函数融合卷积和批归一化(专题五十二)

1. 使用自定义函数的双重反向传播 有时候,在反向计算图中运行两次反向传播是有用的,例如计算高阶梯度。然而,支持双重反向传播需要对自动求导(autograd)有一定的理解,并且需要小心处理。支持单次反向传播的函数不一定能够支持双重反向传播。在本教程中,我们将展示如何编…

MySQL:数据库基础

数据库基础 1.什么是数据库&#xff1f;2.为什么要学习数据库&#xff1f;3.主流的数据库&#xff08;了解&#xff09;4.服务器&#xff0c;数据库&#xff0c;表之间的关系5.数据的逻辑存储6.MYSQL架构7.存储引擎 1.什么是数据库&#xff1f; 数据库(Database,简称DB)&#x…

Web Component 教程(五):从 Lit-html 到 LitElement,简化组件开发

前言 在现代前端开发中&#xff0c;Web 组件是一种非常流行的技术&#xff0c;它允许我们创建可重用的、自包含的 UI 元素。而 Lit-html 是一个简洁高效库&#xff0c;用于在 Web 组件中进行渲染。在这篇教程中&#xff0c;我们一步步学习如何 Lit-html 来创建 Web Component。…

【C++】二叉树和堆的链式结构(上)

本篇博客给大家带来的是用C语言来实现堆链式结构和二叉树的实现&#xff01; &#x1f41f;&#x1f41f;文章专栏&#xff1a;数据结构 &#x1f680;&#x1f680;若有问题评论区下讨论&#xff0c;我会及时回答 ❤❤欢迎大家点赞、收藏、分享&#xff01; 今日思想&#xff…

Devops之AWS:如何安装AWS CLI

AWS 命令行界面&#xff08;AWS CLI&#xff09;是一种开源工具&#xff0c;让我们能够使用命令行 Shell 中的命令与 AWS 服务进行交互。 安装步骤&#xff1a; 下载并运行AWS CLI的MSI安装程序&#xff1a; 点击如下的链接&#xff0c;即可下载MSI安装程序&#xff1a; htt…

PH2D数据集: 用人类演示数据提升人形机器人操作能力,助力跨实体学习

2025-03-18, 由加州大学圣地亚哥分校, 卡内基梅隆大学, 华盛顿大学, 麻省理工学院等机构联合收集了PH2D数据集。该数据集包含26824个任务导向的人类演示&#xff0c;采用消费者级VR设备收集&#xff0c;提供了准确的3D手部关键点姿态和语言注释。数据集覆盖了多种操作任务、不同…

python 数据可视化matplotib库安装与使用

要使用 matplotlib 库进行数据可视化&#xff0c;首先你需要确保已经安装了该库。如果你还没有安装&#xff0c;可以通过 Python 的包管理器 pip 来安装它。在你的命令行工具中运行以下命令来安装 matplotlib&#xff1a; pip install matplotlib安装完成后&#xff0c;你就可以…

【MySQL基础-10】MySQL中的LENGTH()函数:用法详解与实例分析

在MySQL数据库中&#xff0c;LENGTH()函数是一个非常常用的字符串函数&#xff0c;用于计算字符串的字节长度。理解并掌握LENGTH()函数的用法&#xff0c;对于处理字符串数据、优化查询以及进行数据验证都非常有帮助。本文将详细介绍LENGTH()函数的用法&#xff0c;并通过实例演…

Matlab 基于专家pid控制的时滞系统

1、内容简介 Matlab 185-基于专家pid控制的时滞系统 可以交流、咨询、答疑 2、内容说明 略 在处理时滞系统&#xff08;Time Delay Systems&#xff09;时&#xff0c;使用传统的PID控制可能会面临挑战&#xff0c;因为时滞会导致系统的不稳定或性能下降。专家PID控制通过结…

E902基于bash与VCS的仿真环境建立

网上看见很多E902仿真的文章&#xff0c;但用到的编译器是类似于这种Xuantie-900-gcc-elf-newlib-x86_64-V3.0.1-20241120&#xff0c;而我按照相应的步骤与对应的编译器&#xff0c;仿真总会报错。后面将编译器换成riscv64-elf-x86_64-20210512&#xff0c;反而成功了。现在开…

SpringSecurity配置(自定义认证过滤器)

文末有本篇文章的项目源码文件可供下载学习 在这个案例中,我们已经实现了自定义登录URI的操作,登录成功之后,我们再次访问后端中的API的时候要在请求头中携带token,此时的token是jwt字符串,我们需要将该jwt字符串进行解析,查看解析后的User对象是否处于登录状态.登录状态下,将…

《UNIX网络编程卷1:套接字联网API》第1章 简介

《UNIX网络编程卷1&#xff1a;套接字联网API》第1章 简介 1.1 网络编程的核心价值与挑战 网络编程是实现跨设备通信的技术基础&#xff0c;其核心目标是通过协议栈实现数据的可靠传输与高效交换。在嵌入式系统、云计算、物联网等领域&#xff0c;网络编程能力直接决定了系统的…

D-Wave专用量子计算机登顶Science 率先展示在真实场景中的量子优势(内附下载)

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨浪味仙 排版丨浪味仙 行业动向&#xff1a;4200字丨16分钟阅读 摘要&#xff1a;加拿大专用量子计算机公司 D-Wave 在 Science 期刊发表了论文&#xff0c;题为《Beyond-Classical Compu…

在Ubuntu上安装MEAN Stack的4个步骤

在Ubuntu上安装MEAN Stack的4个步骤为&#xff1a;1.安装MEAN&#xff1b;2.安装MongoDB&#xff1b;3.安装NodeJS&#xff0c;Git和NPM&#xff1b;4.安装剩余的依赖项。 什么是MEAN Stack&#xff1f; 平均堆栈一直在很大程度上升高为基于稳健的基于JavaScript的开发堆栈。…

jmeter将返回的数据写入csv文件

举例说明&#xff0c;我需要接口返回体中的exampleid与todoid的数据信息&#xff08;使用边界提取器先将其提取&#xff09;&#xff0c;并将其写入csv文件进行保存 使用后置处理器BeanShell 脚本实例如下 import java.io.*;// 设置要写入的文件路径 String filePath "…

Linux下Redis哨兵集群模式搭建(1主2从+3哨兵)

Linux下Redis哨兵集群模式搭建&#xff08;1主2从3哨兵&#xff09; 一、Redis哨兵模式搭建 1.安装包下载 链接: https://pan.baidu.com/s/1_n2rCMi5MHX-mVkkyMo4LA 提取码: gbra 2.新建redis目录 mkdir -p /app/redis3.解压到/app/redis目录下 tar -zxvf redis-6.2.16.ta…

Debian 系统命令集合 |Debian 和 CentOS常见命令的异同

Debian 系统命令集合 Debian 是一个非常流行且稳定的 Linux 发行版&#xff0c;广泛用于服务器、桌面和工作站环境。 Debian 和 CentOS常见命令 使用方式的对比 注: 部分人&#xff08;比如我&#xff09;先学的centos&#xff0c;其实centos和debian 就记住几十个有区别命…

20250319在荣品的PRO-RK3566开发板的buildroot系统下使用集成的QT应用调试串口UART3

stty -F /dev/ttyS3 115200 -echo cat /dev/ttyS3 & echo serialdata > /dev/ttyS3 20250319在荣品的PRO-RK3566开发板的buildroot系统下使用集成的QT应用调试串口UART3 2025/3/19 14:17 缘起&#xff1a;在荣品的PRO-RK3566开发板的buildroot系统下&#xff0c;在命令…