算法笔记上机训练实战指南刷题记录

文章目录

  • 算法笔记上机训练实战指南刷题记录
    • 模拟
      • B1001 害死人不偿命的(3n+1)猜想
      • B1011 A+B 和 C
      • B1016 部分A+B
      • B1026 程序运行时间
      • B1046划拳
      • B1008数组元素循环右移问题
      • B1012 数字分类
      • B1018 锤子剪刀布
      • A1042 Shuffling Machine
    • 每天两题,持续更新中~

模拟

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

题号题目分数
B1001害死人不偿命的(3n+1)猜想15✔️
B1011A+B 和 C15✔️
B1016部分A+B15✔️
B1026程序运行时间15✔️
B1046划拳15✔️
B1008数组循环右移问题20✔️
B1012数字分类20✔️
B1018锤子剪刀布20✔️
A1042Shuffling Machine
A1046
B1065
B1010
B1002
B1009

B1001 害死人不偿命的(3n+1)猜想

#include <iostream>
using namespace std;
int n, cnt;int main()
{cin >> n;while(n != 1){if(n % 2)n = (3 * n + 1) / 2;elsen /= 2;cnt ++;}cout << cnt << endl;
}

B1011 A+B 和 C

⚠️ A+B可能爆INT。需要开long long。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

#include <iostream>
using namespace std;
int n;
long long a, b, c;int main()
{cin >> n;for(int i = 1; i <= n; i ++){cin >> a >> b >> c;cout << "Case #" << i << ": " << (a + b > c ? "true" : "false") << endl;}return 0;
}

B1016 部分A+B

思路1:

枚举DA,DB出现的次数cntDA, cntDB, 计算PA, PB, 输出PA+PB

A,B用字符串存取,枚举DA,DB次数可以遍历A,B字符串。

#include <iostream>
#include <cstring>
using namespace std;
string A, DA, B, DB;
int cntDA, cntDB;
long long resa, resb;
int main()
{cin >> A >> DA >> B >> DB;for(int i = 0; i < A.size(); i ++)cntDA += (A[i] == DA[0]);for(int i = 0; i < B.size(); i ++)cntDB += (B[i] == DB[0]);if(cntDA) resa = DA[0] - '0';if(cntDB) resb = DB[0] - '0';for(int i = 1; i < cntDA; i ++) resa = resa * 10 + (DA[0] - '0');for(int i = 1; i < cntDB; i ++) resb = resb * 10 + (DB[0] - '0');cout << resa + resb << endl;return 0;
}

思路2:

image-20250625195120977

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

#include <iostream>
#include <cstring>
using namespace std;
typedef long long LL;
LL PA, PB, A, DA, B, DB;;
int main()
{cin >> A >> DA >> B >> DB;while(A){int x = A % 10;if(x == DA) PA = PA * 10 + DA;A /= 10;}while(B){int x = B % 10;if(x == DB) PB = PB * 10 + DB;B /= 10;}cout << PA + PB << endl;return 0;
}

个人推荐思路2,纯粹的模拟做法。

B1026 程序运行时间

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

#include <iostream>
using namespace std;
int c1, c2, t;int main()
{cin >> c1 >> c2;// t = (c2 - c1 + 50) / 100;t = c2 - c1;if(t % 100 >= 50) t = t / 100 + 1;else t = t / 100;printf("%02d:%02d:%02d\n", t / 3600, t % 3600 / 60, t % 60);
}

B1046划拳

failA,failB记录各自输的次数

#include <iostream>
using namespace std;
int failA, failB;
int n;int main()
{cin >> n;while(n --){int a1, a2, b1, b2;cin >> a1 >> a2 >> b1 >> b2;if(a1 + b1 == a2 && a1 + b1 != b2) failB ++;if(a1 + b1 == b2 && a1 + b1 != a2) failA ++;}cout << failA << " " << failB << endl;return 0;
}

B1008数组元素循环右移问题

⚠️题目没有给定M的最大值,不能认为M<N。读入后需要令M=M%N。

直接输出N-M到N-1号元素,再输出0—N - M - 1号元素。

#include <iostream>
using namespace std;
const int N = 110;
int a[N];
int n, m;int main()
{scanf("%d %d", &n, &m);m %= n;for(int i = 0; i < n; i ++)scanf("%d", &a[i]);for(int i = n - m; i < n; i ++)cout << a[i] << " ";for(int i = 0; i < n - m; i ++)cout << a[i] << " \n"[ i == n - m - 1];return 0;
}

B1012 数字分类

#include <iostream>
using namespace std;
const int N = 1010;
int n;
int A1, A2, A3, A4, A5;
int cntA2, cntA4;
int a[N];int main()
{cin >> n;for(int i = 1; i <= n; i ++){cin >> a[i];if(a[i] % 10 == 0) A1 += a[i];if(a[i] % 5 == 1){cntA2 ++;if(cntA2 % 2 == 1) A2 += a[i];else A2 += -1 * a[i];}if(a[i] % 5 == 2) A3 ++;if(a[i] % 5 == 3) A4 += a[i], cntA4 ++;if(a[i] % 5 == 4) A5 = max(A5, a[i]);}double a4 = A4 * 1.0 / cntA4;printf("%d %d %d %.1lf %d", A1, A2, A3, a4, A5);printf("%d %d %d %.1lf %d", A1, A2, A3, a4, A5);printf("%d %d %d %.1lf %d", A1, A2, A3, a4, A5);printf("%d %d %d %.1lf %d", A1, A2, A3, a4, A5);printf("%d %d %d %.1lf %d", A1, A2, A3, a4, A5);return 0;
}

B1018 锤子剪刀布

题目要求输出甲乙获胜,平局,输了的次数,还要输出获胜最多的手势。

按照字典序 B布 C锤子 J剪刀 顺序布赢锤子,锤子赢剪刀,剪刀赢布,用mp数组存对应的手势,mp[0] = ‘B’,

times_A[3], times_B[3]分别存甲乙,胜场,平场,输场次数。hand_A[3]和hand_B[3]存甲乙布,锤子,剪刀胜利次数。

image-20250702202645273

#include <iostream>
using namespace std;char mp[3] = {'B', 'C', 'J'};
int n;
int times_A[3], times_B[3];
int hand_A[3], hand_B[3];
char c1, c2;
int k1, k2;int change(char c)
{if(c == 'B') return 0;if(c == 'C') return 1;if(c == 'J') return 2;
}int main()
{cin >> n;while(n --){cin >> c1 >> c2;k1 = change(c1);k2 = change(c2);if((k1 + 1) % 3 == k2)//甲获胜{times_A[0] ++;times_B[2] ++;hand_A[k1] ++;}else if(k1 == k2)//平局{times_A[1] ++;times_B[1] ++;}else{times_A[2] ++;times_B[0] ++;hand_B[k2] ++;}}printf("%d %d %d\n", times_A[0], times_A[1], times_A[2]);printf("%d %d %d\n", times_B[0], times_B[1], times_B[2]);int id1 = 0, id2 = 0;for(int i = 0; i < 3; i ++){if(hand_A[i] > hand_A[id1]) id1 = i;if(hand_B[i] > hand_B[id2]) id2 = i;}printf("%c %c\n", mp[id1], mp[id2]);return 0;
}

A1042 Shuffling Machine

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

#include <iostream>
using namespace std;
const int N = 60;
char mp[5] = {'S', 'H', 'C', 'D', 'J'};
int Start[N], End[N], Next[N];
int k;int main()
{cin >> k;for(int i = 1; i <= 54; i ++) Start[i] = i;for(int i = 1; i <= 54; i ++) cin >> Next[i];for(int step = 1; step <= k; step ++){for(int i = 1; i <= 54; i ++){End[Next[i]] = Start[i];}for(int i = 1; i <= 54; i ++){Start[i] = End[i];}}for(int i = 1; i <= 54; i ++){if(i != 1) printf(" ");Start[i] --;printf("%c%d", mp[Start[i] / 13], Start[i] % 13 + 1);}return 0;
}

每天两题,持续更新中~

另外:自制PAT做题倒计时插件自制 PTA(拼题A)平台 计时器浏览器插件

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

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

相关文章

MYSQL基础内容

一、介绍 1.不用数据库&#xff1a;使用IO流对数据进行管理 2.使用数据库&#xff1a;使用SQL语句对开发的数据进行管理&#xff0c;能储存上亿条数据 3.MYSQL&#xff1a; 是流行的关系型数据库管理系统之一&#xff0c;将数据保存在不同的数据表中&#xff0c;通过表与表之…

音视频会议服务搭建(设计方案)-01

前言 最近在做音视频会议系统服务搭建的工作任务&#xff0c;因为内容过多&#xff0c;我会逐篇分享相关的设计方案、开发思路、编程语言、使用的组件集合等等。如果你也有大型音视频会议系统搭建架构的需求&#xff0c;希望这些可以对你有所帮助。 EchoMeet 音视频会议系统架构…

刷leetcode hot100/准备机试--图

图的基础知识【这部分建议使用acm模式】 图论理论基础 | 代码随想录 存储&#xff1a; 一般有邻接表【适合稀疏图】【数组 链表 】和邻接矩阵【适合稠密图】存储方式 注意邻接表 和 邻接矩阵的写法都要掌握&#xff01; 邻接矩阵 n个节点&#xff0c;申请n*n或者&#xf…

无代码自动化测试工具介绍

无代码自动化测试工具允许用户无需编写代码即可创建和运行测试,通过拖拽式界面或录制回放等可视化界面进行操作。 这些工具利用图形用户界面和预定义命令来创建测试,使非编程人员也能进行自动化测试。 无代码自动化测试工具使团队能够: 使用直观的拖拽界面开发和执行自动化…

python学习打卡day58

DAY 58 经典时序预测模型2 知识点回顾&#xff1a; 时序建模的流程时序任务经典单变量数据集ARIMA&#xff08;p&#xff0c;d&#xff0c;q&#xff09;模型实战SARIMA摘要图的理解处理不平稳的2种差分 n阶差分---处理趋势季节性差分---处理季节性 建立一个ARIMA模型&#xf…

分布式锁的实现方式:使用 Redisson 实现分布式锁( Spring Boot )

Redisson提供了分布式和可扩展的Java数据结构&#xff0c;包括分布式锁的实现。 1. 添加依赖 在pom.xml中添加Redisson依赖&#xff1a; <dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId>…

Web基础关键_004_CSS(二)

目 录 一、样式 1.行内样式 2.内部样式 3.外部样式 二、选择器优先级 1.非关系选择器 2.关系选择器 三、属性 四、盒子模型 五、元素 1.块级元素 2.行内元素 3.行内块级元素 4.元素类型转换 六、浮动 七、定位 1.静态定位 2.相对定位 3.绝对定位 4.固定定位 …

数据使用权与所有权分离:能否诞生“数据租赁”市场

——首席数据官高鹏律师数字经济团队创作&#xff0c;AI辅助 数据如矿藏&#xff0c;开采需“契约” 想象一座蕴藏着无尽资源的数字矿山&#xff1a;企业或个人拥有数据的“所有权”&#xff0c;如同手握矿脉的产权&#xff0c;但若无法高效挖掘其价值&#xff0c;矿石终将沉…

【esp32s3】2 - 第一个组件

下面的内容编写时间跨度有点大&#xff0c;乱了得一团&#xff0c;也没ai整理。食之无味&#xff0c;弃之可惜。 推荐笔记&#xff1a;ESP32 之 ESP-IDF 教学&#xff08;十八&#xff09;—— 组件配置&#xff08;KConfig&#xff09; 推荐笔记&#xff1a;Kconfig 拓展 乐鑫…

【Java_EE】单例模式、阻塞队列、线程池、定时器

目录 单例模式 饿汉模式<代码> 懒汉模式<代码> 阻塞队列 阻塞队列概念 阻塞队列解决的问题 阻塞队列工作原理 阻塞队列的优/缺点 优点 缺点 模拟实现阻塞队列<代码> 线程池 线程池概念 线程池解决的问题 线程池参数 四种拒绝策略 线程池工作…

Redis初识第七期---ZSet的命令和应用场景

ZSet相较于Set来说&#xff0c;它又是有序的&#xff0c;这个有序指的就是我们通常意义上的有序了&#xff0c;ZSet内部中是按照升序来排序的。 排序规则&#xff1a;ZSet相较于Set来说&#xff0c;它内部引入了一个新的属性&#xff1a;分数&#xff08;Score&#xff09;&am…

Wps开放平台v5升级v7上传实体文件踩坑(Java使用restTemplate)

背景&#xff1a; 最近接到一个老项目需求&#xff0c;之前开发的WPS开放平台文件&#xff08;商密集成&#xff09;预览功能因为升级需要重新对接api&#xff0c;新的上传文件接口踩坑特意记录一下。 这里出问题的是第二步&#xff0c;请求文件上传信息 踩坑代码 调用后403 p…

啥时候上RAG?啥时候上微调?丨实战笔记

哈喽&#xff0c;大家好&#x1f44f; 我是阿星&#xff01; 现在很多AI科普文章都会提到微调&#xff0c;RAG。 但是没有实战的过的同学可能会问&#x1f914;—— 啥时候用RAG&#xff1f;啥时候用微调呢&#xff1f;有啥区别&#xff1f;不都是让模型增加知识面的吗&…

RabbitMQ-基础篇

前言&#xff1a; 今天开始学RabbitMQ,还是跟着黑马的课程。 今日所学&#xff1a; RabbitMQ介绍RabbitMQ入门Java客户端中的MQ 1.RabbitMQ介绍 1.1 什么是RabbitMQ RabbitMQ 是一个开源的消息代理软件&#xff08;消息队列中间件&#xff09;&#xff0c;实现了高级消息…

docker-compose配置redis哨兵详细步骤和配置文件

docker-compose配置redis哨兵详细步骤和配置文件 目录结构调整 redis-cluster/ ├── config/ │ ├── master.conf # 主节点配置 │ ├── slave1.conf # 从节点1配置 │ ├── slave2.conf # 从节点2配置 │ ├── sentinel1.…

多模态大语言模型arxiv论文略读(146)

Exploring Response Uncertainty in MLLMs: An Empirical Evaluation under Misleading Scenarios ➡️ 论文标题&#xff1a;Exploring Response Uncertainty in MLLMs: An Empirical Evaluation under Misleading Scenarios ➡️ 论文作者&#xff1a;Yunkai Dang, Mengxi G…

【教程】Linux中限制用户可以使用的GPU数量 | 附脚本

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 背景说明 设置方法 管理脚本 进阶限制 恢复默认组 注意事项 背景说明 比较简单的方式是使用group来管理权限&#xff0c;这种方式能限制哪些…

90.xilinx复位低电平(一般使用低电平复位)

Xilinx FPGA 中的寄存器&#xff08;Flip-Flop&#xff09;**确实支持异步复位**&#xff0c;但具体实现方式取决于你使用的设计方法&#xff08;HDL 代码风格或原语实例化&#xff09;。以下是详细说明&#xff1a; --- ### 1. **Xilinx 寄存器的复位特性** - **同步复位…

NVMe高速传输之摆脱XDMA设计10: DMA 控制单元设计

DMA 控制单元负责控制 DMA 传输事务&#xff0c; 该单元承担了 DMA 事务到 NVMe 事务的转换任务&#xff0c; 使用户对数据传输事务的控制更加简单快捷。 DMA 控制功能由 DMA寄存器组实现。 DMA 寄存器组包含 DMA 操作寄存器、 DMA 长度寄存器、 DMA 源目的地址寄存器和 DMA 状…

如何设置电脑定时休眠?操作指南详解

长时间运行电脑会导致硬件过热&#xff0c;缩短其使用寿命。定时关机有助于让硬件得到休息&#xff0c;降低因长时间高负荷工作导致损坏的风险。 它的界面简洁直观&#xff0c;功能却十分实用&#xff0c;涵盖了定时关机、重启、注销、休眠、待机以及锁定等多种操作。 以设置“…