T288401 B-莲子的机械动力学

news2025/7/17 20:15:09

专攻超统一物理学的莲子,对机械结构的运动颇有了解。如下图所示,是一个三进制加法计算器的(超简化)示意图。

一个四位的三进制整数,从低到高位,标为 x_1,x_2,x_3,x_4x1​,x2​,x3​,x4​。换言之,这个数可以写成 \overline{x_4x_3x_2x_1}_{(3)}x4​x3​x2​x1​​(3)​。把它放在这四个齿轮里,对应箭头指向的数字就是现在这位的数值。

在这种机械式计算机里,我们通过齿轮的啮合来实现数位间的连接。通过不同齿轮半径的比例来确定进制。图中所有浅灰色的小齿轮的半径,比上使用皮带相接的较大齿轮的半径,都是 1:31:3。那么小齿轮每转动一圈,大齿轮就转动 \dfrac{1}{3}31​ 圈,也就是刚好一个数码的角度。

于是,我们通过控制齿轮的半径实现了 33 进制的进位。

如果需要实现三进制加法,则只需要在对应数位拨动对应的数码长度即可。

如下是个例子,实现 \overline{1021}_{(3)}+\overline{0021}_{(3)}=\overline{1112}_{(3)}1021(3)​+0021(3)​=1112(3)​

初始时齿轮的状态如上。

把第一个齿轮拨动一个单位长度,变为如上图所示。

把第二个齿轮拨动两个单位长度,变为如上图所示。读数,得到结果 \overline{1112}_{(3)}1112(3)​。


现在莲子设计了如下图所示的机械结构。对于从左往右数的第 ii 枚齿轮,它上面的浅色小齿轮与第 i+1i+1 枚齿轮上的深色小齿轮的半径之比为 1:(i+2)1:(i+2)。也就是说,第 ii 枚齿轮每转动 11 圈,第 i+1i+1 枚齿轮转过的角度恰好为它上面的一个数码。

莲子想要知道,在这样的特别的进制表示下,给定 a,ba,b,那么计算出的 a+ba+b 的结果是多少。

题目描述

题目背景的问题可以转化为如下描述:

给定两个长度分别为 n,mn,m 的整数 a,ba,b,计算它们的和。

但是要注意的是,这里的 a,ba,b 采用了某种特殊的进制表示法。最终的结果也会采用该种表示法。具体而言,从低位往高位数起,第 ii 位采用的是 i+1i+1 进制。换言之,相较于十进制下每一位的「逢 1010 进 11」,该种进制下第 ii 位是「逢 i+1i+1 进 11」。

下图所示,左边是十进制的竖式加法;右边是这种特殊进制的竖式加法。图中的红色加号表示上一位发生了进位。

输入格式

  • 第一行有两个整数 n,mn,m,分别表示 aa 和 bb 的位数。
  • 第二行有 nn 个整数,中间用空格隔开,从高到低位描述 aa 的每个数码。
  • 第三行有 mm 个整数,中间用空格隔开,从高到低位描述 bb 的每个数码。

输出格式

  • 输出有若干个整数,从高到低位输出 a+ba+b 在这种特殊表示法下的结果。

输入输出样例

输入 #1复制

5 4
3 3 2 1 1
3 2 2 1

输出 #1复制

4 2 1 1 0

输入 #2复制

10 1
10 9 8 7 6 5 4 3 2 1
0

输出 #2复制

10 9 8 7 6 5 4 3 2 1

说明/提示

对于全部数据,保证 1\le n,m\le 2\times 10^51≤n,m≤2×105,从低位往高位数起有 a_i\in[0,i]ai​∈[0,i],b_i\in[0,i]bi​∈[0,i]。请使用 Java 或 Python 语言作答的选手注意输入输出时的效率。

#include <iostream>
#include <algorithm>
#include <climits>
#include <stdio.h>
#include <cstdlib>
#include <memory.h>
#include <queue>
#include <stack>
#include <math.h>

using namespace std;


//第二题
int main()
{
    long long n, m;
    cin >> n >> m;
    //找到n和m哪个大
    long long num;
    if(n >= m) num = n;
    else num = m;
    //初始化
    long long a[num+5], b[num+5], c[num+5];
    memset(a, 0, sizeof(a));
    memset(b, 0, sizeof(b));
    memset(c, 0, sizeof(c));
    //倒着输入
    for(long long i = n; i > 0; i--)
        cin >> a[i];
    for(long long i = m; i > 0; i--)
        cin >> b[i];



    long long i = 1;


    int sum;
    int out = 0;
    long long count1 = 2;
    bool haha = false;
    while(i <= num+1)
    {
        sum = (a[i]+b[i]+out)%count1; //获得该位的值
        out = (a[i]+b[i]+out)/count1; //获得下一位该进的值
        if(i == num && out >= 1) haha=true; //加起来是几位数
        //cout << sum << ' ' << out <<endl;
        count1++;
        c[i++] = sum; //用c数组存储该位的值(向后逆序存储)
    }

    if(haha == true)
    {
        for(long long k = num+1; k > 0; k--)
        {
            cout << c[k] << ' ';
        }

    }
    else
        for(long long k = num; k > 0; k--)
        {
            cout << c[k] << ' ';
        }


}

 

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

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

相关文章

第八章《Java高级语法》第12节:Lambda表达式

Lambda 表达式是 JDK8 的一个新特性,它可以定义大部分的匿名内部类,从而让程序员能写出更优雅的Java代码,尤其在集合的各种操作中可以极大地优化代码结构。 8.12.1 认识Lambda表达式 一个接口的实现类可以被定义为匿名类。经过大量实践,人们发现定义一个接口的匿名实现类…

ADAU1860调试心得(8)FASTDSP-0 通道输入

这个程序&#xff0c;我们正式要用到 DSP 了&#xff0c;ADC 进来的数据&#xff0c;经过 FASTDSP 的算法进行处理&#xff0c;再 送给 DAC 推到耳机&#xff0c;通道我们输入 0 到输出为例&#xff0c;还是先做直通&#xff0c;DSP 路过一下&#xff0c;并不做处理。 首先是寄…

WebStorm创建第一个Express项目

WebStorm创建Express项目步骤如下&#xff1a; 1、在WebStorm创建项目 选择项目存储位置&#xff0c;然后点击create&#xff0c;再选择创建的窗口&#xff0c;一般都是创建在this window上 2、进入窗口会终端会开始下载Express项目所需要的文件&#xff0c;我们等到出现如下图…

C++中的多态(下)

&#x1f9f8;&#x1f9f8;&#x1f9f8;各位大佬大家好&#xff0c;我是猪皮兄弟&#x1f9f8;&#x1f9f8;&#x1f9f8; 文章目录一、C11当中的final和overridefinaloverride二、重载&重定义(隐藏)&重写(覆盖)三、抽象类&#xff08;接口类&#xff09;四、接口继…

Hive数据定义语言DDL

文章目录1 Apache Hive客户端使用2 Hive编译工具3 Hive SQL DDL建表基础语法3.1 Hive数据类型详解3.2 Hive读写文件机制3.3 Hive数据存储路径3.4 案例--王者荣耀数据Hive建表映射4 Hive SQL DDL建表高阶语法4.1 Hive 内部表、外部表4.2 Hive Partitioned Tables 分区表4.3.1 数…

第九章 堆排序与TOPK问题

第九章&#xff1a;堆排序与TOPK问题一、堆排序&#xff1a;1、思路分析&#xff1a;&#xff08;1&#xff09;建堆&#xff08;2&#xff09;排序2、堆排序模板二、TOPK问题&#xff1a;1、什么是TOPK问题&#xff1f;2、解决方法一、堆排序&#xff1a; 假设我们实现一个小…

【数据结构】二叉树

目录 一、树 1.1树的一些重要概念 1.2树的应用 二、二叉树 2.1概念 2.2两种特殊的二叉树 二叉树的第一个特点 二叉树的第二个特点 二叉树的第三个特点&#xff1a; 2.3二叉树的存储 2.4二叉树的遍历-深度优先搜索&#xff08;二叉树的高度&#xff09;dfs 前序遍历…

Java学习:动态代理

java一、代理模式二、静态代理三、动态代理一、代理模式 代理模式是一种设计模式,能够使得再不修改源目标的情况下,额外扩展源目标的功能。即通过访问源目标的代理类,再由代理类去访问源目标。这样一来,要扩展功能,就无需修改源目标的代码了。只要在代理上增加就可以了 二、静态…

CSAPP学习导航2015

CSAPP学习导航2015为什么要学这个课程前后置前置后置课程资料课程视频课程组成实验&#xff0c;lab*7学完后学习打卡总结为什么要学这个 深入浅出的为我们搭建计算机学习体系&#xff0c;为以后更深入的学习打好基础。 &#xff08;这学学&#xff0c;那学学&#xff0c;所学太…

iwebsec靶场 SQL注入漏洞通关笔记4- sleep注入(时间型盲注)

系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入&#xff08;宽字节注入&#xff09;_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记3- bool注入&#xff08;布尔型盲注&#…

语法制导翻译(Syntax-Directed Translation)

语法制导翻译&#xff08;Syntax-Directed Translation&#xff09;语法制导翻译概述语法制导定义&#xff08;SDD&#xff09;文法符号的属性SDD 求值顺序S-SDD 和 L-SDD语法制导翻译方案&#xff08;SDT&#xff09;S-SDD的SDT实现L-SDD的SDT实现在非递归的预测分析过程中进行…

LeetCode HOT 100 —— 32.最长有效括号

题目 给你一个只包含 ‘(’ 和 ‘)’ 的字符串&#xff0c;找出最长有效&#xff08;格式正确且连续&#xff09;括号子串的长度。 思路 方法一&#xff1a;动态规划 定义dp[i]表示以下标i结尾的最长有效括号的长度&#xff0c;并全部初始化为0 注意到有效的子串一定是以’…

AOP实现方式-P20,21,22

项目的包&#xff1a; pom依赖导入有关aop的包&#xff1a; <dependencies><!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver --><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactI…

【PyTorch】Training Model

文章目录七、Training Model1、模型训练2、GPU训练2.1 .cuda()2.2 .to(device)2.3 Google Colab3、模型验证七、Training Model 1、模型训练 以CIFAR10数据集为例&#xff1a; import torchvision from torch.utils.data import DataLoader from torch.utils.tensorboard im…

【算法】2022第五届“传智杯”全国大学生计算机大赛(练习赛)

【参考&#xff1a;第五届“传智杯”全国大学生计算机大赛&#xff08;练习赛&#xff09; - 洛谷 | 计算机科学教育新生态】 练习赛满分程序&#xff08;多语言&#xff09;&#xff1a;https://www.luogu.com.cn/paste/fi60s4yu CPU一秒大概运行 10810^8108 次&#xff0c;…

年产10万吨环氧树脂车间工艺设计

目 录 摘 要 1 ABSTRACT 2 1 绪论 3 1.1环氧树脂的基本性质 3 1.2 环氧树脂的特点和用途 3 1.3环氧树脂发展的历史、现状及趋势 3 1.3.1环氧树脂的发展历史 4 1.3.2环氧树脂的生产现状 4 1.3.3 环氧树脂的发展趋势 5 1.4本设计的目的、意义及内容 5 1.4.1本设计的目的 5 1.4.2…

Matlab顶级期刊配色工具Rggsci

颜色搭配是一件非常让人头疼的事情。 一方面&#xff0c;如果忽视了配色&#xff0c;就好像是做菜没放盐&#xff0c;总会感觉少些味道。 另一方面&#xff0c;如果太注重配色&#xff0c;又感觉不是很有必要&#xff0c;毕竟数据结果好看才是第一位的。 想要平衡两者&#…

18.4 嵌入式指针概念及范例、内存池改进版

一&#xff1a;嵌入式指针&#xff08;embedded pointer&#xff09; 1、嵌入式指针概念 一般应用在内存池相关的代码中&#xff0c;成功使用嵌入式指针有个前提条件&#xff1a;&#xff08;类A对象的sizeof必须不小于4字节&#xff09; 嵌入式指针工作原理&#xff1a;借用…

文华财经期货K线多周期画线技术,多重短线技术共振通道线指标公式——多周期主图自动画线

期货指标公式是通过数学逻辑角度计算而来&#xff0c;仅是期货分析环节中的一个辅助工具。期货市场具有不确定性和不可预测性的&#xff0c;请正常对待和使用指标公式! 期货指标公式信号本身就有滞后性&#xff0c;周期越大&#xff0c;滞后性越久。指标公式不是100%稳赚的工具…

cocos2dx创建工程并在androidstudio平台编译

本文主要是通过androidstudio进行编译运行cocos2dx工程。 前置条件&#xff1a; 1&#xff1a;androidstudio已经下载并安装。 2&#xff1a;cocos2dx已经下载并打开。 这里androidstudio使用2021.3.1版本&#xff0c;cocos2dx使用4.0版本。 第一步&#xff0c;首先安装py…