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

HDU1032——The 3n + 1 problem,HDU1033——Edge,HDU1034——Candy Sharing Game

目录

HDU1032——The 3n + 1 problem

题目描述

运行代码

代码思路

HDU1033——Edge

题目描述

运行代码

代码思路

HDU1034——Candy Sharing Game

题目描述

运行代码

代码思路

HDU1032——The 3n + 1 problem

题目描述

Problem - 1032

运行代码

#include <iostream>
using namespace std;
int main() {int i, j, t, k;while (cin >> i >> j) {int u = i;int o = j;int max = 0;if (i > j) {t = i;i = j;j = t;}for (k = i; k <= j; k++) {  // 从 i 到 j 寻找最大循环次数int p = k;int cn = 0;while (p != 1) {if (p % 2 != 0)p = 3 * p + 1;elsep = p / 2;cn++;  // cn 记录每个数变成 1 所需要的最大循环次数}if (max < cn)max = cn;}cout << u << " " << o << " " << max + 1 << endl;}return 0;
}

代码思路

  1. 读取输入:代码从标准输入读取两个整数ij,这两个整数定义了我们感兴趣的一个范围。

  2. 交换输入:如果i大于j,则交换它们的位置,确保i总是小于或等于j,这样在后续的循环中我们可以从ij进行迭代。

  3. 初始化变量uo分别存储了最初的ij的值,以便在最后输出时使用;max变量被初始化为0,用于记录在指定范围内所有数的Collatz序列中,序列长度的最大值。

  4. 遍历范围内的每一个数:从ij,对于范围内的每一个数k,代码将计算其Collatz序列的长度。

  5. 计算Collatz序列长度:对于每个数k,初始化p等于k,并使用一个循环来生成Collatz序列,直到p变为1。在这个过程中,如果p是奇数,则更新p3 * p + 1;如果是偶数,则更新pp / 2。每次迭代,cn(循环计数)都会增加,用于记录生成序列所需的步数。

  6. 更新最大序列长度:每次计算完一个数的序列长度后,检查cn是否大于当前已知的最大序列长度max,如果是,则更新maxcn

  7. 输出结果:在处理完所有数后,输出最初输入的两个数uo,以及最长序列的长度max + 1(因为序列的初始步骤也算一步)。这里加1是因为循环从某个数开始,最终到达1,所以cn记录的是到达1之前的步数,因此最终结果要加1。

  8. 循环继续或结束:由于while循环的存在,程序会持续读取和处理输入,直到没有更多的输入为止(例如,当标准输入结束时)。

HDU1033——Edge

题目描述

Problem - 1033

运行代码

#include <iostream>
#include <string>
using namespace std;
const int L = 0, R = 1, U = 2, D = 3;  // 代表左右上下 4 方向
int dir_A[] = { U, D, R, L };  // 执行 A 右转操作时 4 个方向变为对应的 UDRL 方向
int dir_V[] = { D, U, L, R };  // 执行 V 左转操作时 4 个方向变为对应的 DULR 方向
int dx[] = { -10, 10, 0, 0 };  // 左右上下 4 方向对应的 X 坐标增量
int dy[] = { 0, 0, 10, -10 };  // y 增量void Edge(const string& com) {cout << "300 420 moveto" << endl;cout << "310 420 lineto" << endl;int x = 310, y = 420;  // 初始的坐标int cur_dir = R;  // 初始的方向始终向右for (char c : com) {  // 遍历命令int new_dir;  // 新的方向if (c == 'A') {new_dir = dir_A[cur_dir];x += dx[new_dir];  // 新方向 X 增量y += dy[new_dir];  // 新方向 Y 增量}else {new_dir = dir_V[cur_dir];x += dx[new_dir];y += dy[new_dir];}cur_dir = new_dir;  // 更新当前方向cout << x << " " << y << " lineto" << endl;}cout << "stroke" << endl;cout << "showpage" << endl;
}int main() {string com;while (cin >> com) {Edge(com);}return 0;
}

代码思路

HDU1034——Candy Sharing Game

题目描述

Problem - 1034

运行代码

#include <iostream>
#include <cstdio>
#define N 100using namespace std;int main() {int s[N], n, i, k, t, p;while (scanf_s("%d", &n) == 1 && n) {for (i = 0; i < n; i++)scanf_s("%d", s + i);for (k = 1; ; k++) {t = s[n - 1] / 2;  // 首先处理边界条件,存取最后一个人糖果数的一半for (i = 0; i < n; i++) {p = s[i] / 2;  // 存取当前糖果数的一半用来给右边的同学s[i] = s[i] / 2 + t;  // 自己减一半再加上左边同学给的一半t = p;  // 给完一个同学换下一个if (s[i] % 2 != 0)  // 当前处理完如果为奇数,收老师一个s[i]++;}t = s[0];bool isSame = true;  // 增加一个标志变量来判断是否每个同学糖果数相同for (i = 1; i < n; i++) {if (s[0] != s[i]) {isSame = false;break;}}if (isSame) {break;}}printf("%d %d\n", k, t);  // 输出游戏次数和每个人最终的糖果数}return 0;
}

代码思路

  1. 读取输入:代码从标准输入读取一组整数,第一个整数n表示参与游戏的小朋友的数量,接着读取n个整数,表示每个小朋友初始拥有的糖果数。

  2. 初始化游戏状态:使用一个整型数组s存储每个小朋友的糖果数,数组s的大小由宏N决定,这里假设最多有100个小朋友参与游戏。

  3. 重新分配糖果:代码进入一个无限循环,开始重新分配糖果的过程。每一次循环代表游戏的一轮。

  4. 处理边界条件:在每轮开始时,处理边界条件,即最后一个小朋友糖果数的一半会被保留,用于在这一轮结束时给予第一个小朋友。

  5. 分配糖果的逻辑:对于每一个小朋友,他们将自己的糖果数分成两半,一半留给自身,另一半给予右边的小朋友。如果分配后糖果数为奇数,则额外获得一颗糖果,以确保糖果数为偶数。

  6. 检查游戏是否结束:每一轮结束后,检查所有小朋友的糖果数是否相同。为此,代码使用了一个布尔变量isSame来标记所有小朋友的糖果数是否一致。如果所有小朋友的糖果数相同,游戏结束,跳出循环。

  7. 输出结果:一旦游戏结束,输出游戏的轮数k和每个小朋友最终的糖果数t

  8. 循环处理多组数据:由于使用了while循环读取输入,代码可以连续处理多组数据,直到读取的n为0或输入结束。

相关文章:

HDU1032——The 3n + 1 problem,HDU1033——Edge,HDU1034——Candy Sharing Game

目录 HDU1032——The 3n 1 problem 题目描述 运行代码 代码思路 HDU1033——Edge 题目描述 运行代码 代码思路 HDU1034——Candy Sharing Game 题目描述 运行代码 代码思路 HDU1032——The 3n 1 problem 题目描述 Problem - 1032 运行代码 #include <iostr…...

内网对抗-隧道技术篇防火墙组策略HTTP反向SSH转发出网穿透CrossC2解决方案

知识点&#xff1a; 1、C2/C2上线-CrossC2插件-多系统平台支持 2、隧道技术篇-应用层-SSH协议-判断&封装&建立&穿透 3、隧道技术篇-应用层-HTTP协议-判断&封装&建立&穿透隧道技术主要解决网络通讯问题&#xff1a;遇到防火墙就用隧道技术&#xff0c;…...

实战案例:如何用ChatGPT生成适合不同领域的高质量文章

随着人工智能技术的快速进展&#xff0c;制作高质量文章已变得轻而易举。尤其是OpenAI推出的ChatGPT&#xff0c;极大地简化了写作任务。接下来&#xff0c;本文将通过具体案例&#xff0c;详解如何利用ChatGPT撰写不同领域的高品质文章。 背景&#xff1a;光辉AI交流-免费问答…...

多线程案例-单例模式

单例模式是设计模式之一&#xff0c;能保证某个类在程序中只存在唯一一份实例&#xff0c;而不会创建出多个实例 单例模式的具体实现方法有很多&#xff0c;最常见的是 “饿汉” 和 “懒汉” 两种。 饿汉模式 class Singlenton{private static Singlenton instance new Sin…...

P6 优化篇 - 数据折线图可视化步骤

增加新页面, 则需要在 page.json里面增加页面信息 2.添加目录, 和路径 同时也要添加目录了 , 新建目录LineChart , 添加文件LineChart.vue 4.LineChart.vue 直接复制黏贴 <template><view class"container"><!-- 图表显示区域 --><view cla…...

优选算法之二分查找(上)

目录 一、二分查找 1.题目链接&#xff1a;704. 二分查找 2.题目描述&#xff1a; 3.算法流程&#xff1a; 4.算法代码&#xff1a; 二、在排序数组中查找元素的第一个和最后一个位置 1.题目链接&#xff1a;34. 在排序数组中查找元素的第一个和最后一个位置 2.题目描述…...

JavaScript(16)——定时器-间歇函数

开启定时器 setInterval(函数,间隔时间) 作用&#xff1a;每隔一段时间调用这个函数&#xff0c;时间单位是毫秒 例如&#xff1a;每一秒打印一个hello setInterval(function () { document.write(hello ) }, 1000) 注&#xff1a;如果是具名函数的话不能加小括号&#xf…...

VUE中的重点*

1.MVC 和 MVVM的区别&#xff1f; MVC&#xff1a;M&#xff08;model数据&#xff09;、V&#xff08;view视图&#xff09;&#xff0c;C&#xff08;controlle控制器&#xff09; 缺点是前后端无法独立开发&#xff0c;必须等后端接口做好了才可以往下走&#xff1b; 前端没…...

rabbitmq生产与消费

一、rabbitmq发送消息 一、简单模式 概述 一个生产者一个消费者模型 代码 //没有交换机&#xff0c;两个参数为routingKey和消息内容 rabbitTemplate.convertAndSend("test1_Queue","haha");二、工作队列模式 概述 一个生产者&#xff0c;多个消费者&a…...

spring-boot3.x整合Swagger 3 (OpenAPI 3) +knife4j

1.简介 OpenAPI阶段的Swagger也被称为Swagger 3.0。在Swagger 2.0后&#xff0c;Swagger规范正式更名为OpenAPI规范&#xff0c;并且根据OpenAPI规范的版本号进行了更新。因此&#xff0c;Swagger 3.0对应的就是OpenAPI 3.0版本&#xff0c;它是Swagger在OpenAPI阶段推出的一个…...

SM2隐式证书用户公私钥生成python代码实现

GMT0130-2023具体描述基于SM2算法的隐式证书公钥机制&#xff0c;这里尝试Python代码实现密钥生成部分功能&#xff0c;具体如下&#xff0c;椭圆曲线计算实现使用python第三方包gmssl。 #生成用户私钥Da和公钥Pa&#xff0c;其中Da&#xff08;tAdA)mod N&#xff0c;Pa可以直…...

IEC104转MQTT网关快速实现了IEC104到MQTT的转换和数据交互

随着智能电网技术的不断进步&#xff0c;IEC 104&#xff08;IEC 60870-5-104&#xff09;协议作为电力系统中重要的远动通信标准&#xff0c;正逐步融入更广泛的物联网生态系统中。亚马逊AWS&#xff08;Amazon Web Services&#xff09;&#xff0c;作为全球领先的云计算服务…...

【OpenCV C++20 学习笔记】调节图片对比度和亮度(像素变换)

调节图片对比度和亮度&#xff08;像素变换&#xff09; 原理像素变换亮度和对比度调整 代码实现更简便的方法结果展示 γ \gamma γ校正及其实操案例线性变换的缺点 γ \gamma γ校正低曝光图片矫正案例代码实现 原理 关于OpenCV的配置和基础用法&#xff0c;请参阅本专栏的其…...

web UI自动化测试 浏览器模式设置

自动化之浏览器模式设置 做selenium UI自动化测试时&#xff0c;每次都需要启动浏览器、用例运行结束后再关闭浏览器&#xff0c;浏览器启动相当地耗费时间&#xff0c;在本机运行用例的话还得放开双手&#xff0c;可以使用chrome的headless模式&#xff0c;让浏览器在后台运行…...

OpenCV图像滤波(1)双边滤波函数bilateralFilter的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 功能描述 bilateralFilter是图像处理和计算机视觉领域中的一种高级图像滤波技术&#xff0c;特别设计用于在去除噪声的同时保留图像的边缘和细节。相比于传…...

前端开发使用Big.js精算避免误差

1、下载 npm install big.js 全局引入还是局部引入可根据项目框架及个人需求 2、静态引入 < script src https://unpkg.com/big.js6.0.0/big.mjs > </ script > 或者 import Big from https://raw.githubusercontent.com/mikemcl/big.js/v6.0.0/big.mjs; i…...

在 Ubuntu 22.04/20.04 安装 CVAT 和 SAM 指南

1. 安装 Docker 和 Docker Compose sudo apt-get update sudo apt-get --no-install-recommends install -y \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-ke…...

【SpringCloud】 微服务分布式环境下的事务问题,seata大合集

目录 微服务分布式环境下的事务问题 分布式事务 本地事务 BASE理论与强弱一致性 BASE理论 强弱一致性 常见分布式事务解决方案 - 2PC 常见分布式事务解决方案 - TCC 常见分布式事务解决方案 - 最大努力通知 常见分布式事务解决方案 - 最终一致性 Seata介绍与术语 Seata…...

vite5+vue3开发阅读APP实战笔记20240725

目前界面长成这样&#xff1a; 配置别名 修改vite.config.js import {defineConfig} from vite import vue from vitejs/plugin-vue import path from "path"// https://vitejs.dev/config/ export default defineConfig({server: {open: true,port: 8088,},plug…...

Intel任命Micron技术开发主管领导Intel Foundry制造运营

- **新闻要点**&#xff1a;Intel聘请了Micron的技术开发主管Dr. Naga Chandrasekaran担任首席全球运营官、执行副总裁以及Intel Foundry制造和供应链组织的总经理。他将负责Intel的所有制造运营事务。 #### 任命背景 - **领导团队**&#xff1a;Chandrasekaran将成为Intel执行…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

Spring Security 认证流程——补充

一、认证流程概述 Spring Security 的认证流程基于 过滤器链&#xff08;Filter Chain&#xff09;&#xff0c;核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤&#xff1a; 用户提交登录请求拦…...

鸿蒙(HarmonyOS5)实现跳一跳小游戏

下面我将介绍如何使用鸿蒙的ArkUI框架&#xff0c;实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...