CCF计算机软件能力认证考试—202209-1如此编码

题目背景

某次测验后,顿顿老师在黑板上留下了一串数字 23333 便飘然而去。凝望着这个神秘数字,小 P 同学不禁陷入了沉思……

题目描述

已知某次测验包含 � 道单项选择题,其中第 � 题(1≤�≤�)有 �� 个选项,正确选项为 ��,满足 ��≥2 且 0≤��<��。比如说,��=4 表示第 � 题有 4 个选项,此时正确选项 �� 的取值一定是 0、1、2、3 其中之一。

顿顿老师设计了如下方式对正确答案进行编码,使得仅用一个整数 � 便可表示 �1,�2,⋯,��。

首先定义一个辅助数组 ��,表示数组 �� 的前缀乘积。当 1≤�≤� 时,满足:
��=�1×�2×⋯×��

特别地,定义 �0=1。

于是 � 便可按照如下公式算出:
�=∑�=1���−1×��=�0×�1+�1×�2+⋯+��−1×��

易知,0≤�<��,最小值和最大值分别当 �� 全部为 0 和 ��=��−1 时取得。

试帮助小 � 同学,把测验的正确答案 �1,�2,⋯,�� 从顿顿老师留下的神秘整数 � 中恢复出来。

输入格式

从标准输入读入数据。

输入共两行。

第一行包含用空格分隔的两个整数 � 和 �,分别表示题目数量和顿顿老师的神秘数字。

第二行包含用空格分隔的 � 个整数 �1,�2,⋯,��,依次表示每道选择题的选项数目。

输出格式

输出到标准输出。

输出仅一行,包含用空格分隔的 � 个整数 �1,�2,⋯,��,依次表示每道选择题的正确选项。

样例1输入

15 32767
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

Data

样例1输出

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Data

样例2输入

4 0
2 3 2 5

Data

样例2输出

0 0 0 0

Data

样例3输入

7 23333
3 5 20 10 4 3 10

Data

样例3输出

2 2 15 7 3 1 0

Data

样例3解释

1234567
��3520104310
��22157310
��−1131530030001200036000

子任务

50% 的测试数据满足:�� 全部等于 2,即每道题均只有两个选项,此时 ��=2�;

全部的测试数据满足:1≤�≤20,��≥2 且 ��≤109(根据题目描述中的定义 �� 表示全部 �� 的乘积)。

提示

对任意的 1≤�≤�,因为 ��+1,��+2,⋯ 均为 �� 的倍数,所以 � 除以 �� 的余数具有如下性质:
� % ��=∑�=1���−1×��
其中 % 表示取余运算。令 � 取不同的值,则有如下等式:

#include<iostream>
using namespace std;
int main()
{int n,i,j,m,a[1000],b[1000],c[1000],s[1000];c[0]=1,s[0]=0;cin>>n>>m;//表示题目数量和神秘数字for(i=1;i<=n;i++){cin>>a[i];//定义a数组 for(j=1;j<=i;j++){ c[j]=c[j-1]*a[j];//定义c数组s[j]=m%c[j];//定义s数组}}for(i=1;i<=n;i++)//定义b数组 {b[i]=(s[i]-s[i-1])/c[i-1];}for(i=1;i<=n;i++)//输出b数组 {cout<<b[i]<<" ";} return 0;} 

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

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

相关文章

字符函数,字符串函数(C语言)

字符函数&#xff0c;字符串函数是C语言中非常重要的函数族&#xff0c;它们在日常的编程过程中被广泛使用。它们不仅能够大大提高我们的编程效率&#xff0c;还可以为我们提供更灵活、更高效的操作方法。在本篇博客中&#xff0c;我们将一起深入了解这二类函数的基本概念和使用…

在外包待了6年,技术退步太明显......

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

关于队列的简单理解

1.队列(Queue) 1.1 关于队列 队列 &#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c; 队列具有先进先出 FIFO(First In First Out)的操作特性&#xff08;队列是个接口&#xff09;&#xff1b; 入队列&#x…

外包干了2个月,技术倒退2年。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;20年通过校招进入深圳某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年国庆&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

图书馆智能密集书架怎么用的

图书馆智能密集书架是一种高密度存储书籍的设备&#xff0c;通过机器控制和操作&#xff0c;实现了对书籍的高效存储和检索。使用专久智能智能密集书架的方法如下&#xff1a; 1.先进行授权认证&#xff0c;确认身份和权限&#xff0c;进行操作前要确保权限正确&#xff0c;以免…

谨慎使用android.view.SurfaceView.setVisibility方法

谨慎使用android.view.SurfaceView.setVisibility方法 why? 原因就是此方法会导致native的内存暴增&#xff0c;前提条件你使用surfaceview去绘制一些复杂的3D图形&#xff0c;绘制复杂、业务复杂的场景&#xff1b; setVisibility方法会调用surfaceView的updateSurface,而此…

Python自动化——driver.switch_to的用法

driver.switch_to的用法 from selenium import webdriver driver webdriver.Chrome(/path/to/chromedriver) # Chrome driver.get(https://www.example.com) # 打开网页 element driver.find_element_by_id(element_id) # 查找元素记得在不需要使用 driver 时&#xff0c…

Android 使用aapt工具获取apk信息

aapt 工具的官网说明 https://developer.android.google.cn/studio/command-line/aapt2?hlzh_cn 功能有很多&#xff0c;本篇记录怎么使用aapt工具获取apk信息。 在 Aosp 源码下&#xff0c; 执行 source 、lunch 后&#xff0c;直接输入 aapt 就可以使用了。 不执行 sour…

CAPL接口

浮点和整形之间转换 interpretAsDword()//float转dword interpretAsFloat()//dword转float interpretAsQword()//double转qword interpretAsDouble()//gword转double常用字符串函数 strlen()//字符串长度 elCount()//数组的定义长度 strncat()//将源字符串拼接到到目的字符串…

日志JavaAgent-NoClassDefFoundError

一、引言 组内最近做了一个日志公共组件&#xff0c;用的是javaagent的方式&#xff0c;之前搞的maven jar包每次都要把所有系统都发一遍&#xff0c;太麻烦。 javaagent通过Java虚拟机&#xff08;JVM&#xff09;的Instrumentation API来实现代码的侵入。通过Instrumentation…

GNN Maximum Flow Problem (From Shusen Wang)

Maximum Flow Problem ShusenWang 图数据结构和算法课程笔记 Slides Maximum Flow Problem Description Naive Algorithm Residual Capacity - FlowLeft: Original GraphRight: Residual Graph - Bottleneck capacity 2- Iteration 2:- Find an augmenting path: s -&g…

HTTP会话技术---Cookie、Session和Token介绍及它们在JavaWeb中的使用

当涉及到Web应用程序的身份验证和状态管理时&#xff0c;我们通常会使用到Cookie、Session和Token这些会话技术。下面是对它们的介绍&#xff0c;并在JavaWeb中的示例 Cookie&#xff08;HTTP Cookie&#xff09; Cookie是一种存储在用户浏览器中的小型文本文件&#xff0c;由…

python import 顺序以及自动实现import 顺序更改

核心风格: import 语句的模块顺序 我们推荐所有的模块在 Python 模块的开头部分导入。 而且最好按照这样的顺序: 1. Python 标准库模块 2. Python 第三方模块 3. 应用程序自定义模块 Isort 自动整理 import 的超实用工具教程-CSDN博客 使用isort实现import的自动排序 1.安装…

基于Springboot的在线问卷调查系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的在线问卷调查系统(有报告)。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring…

1-4节电池升降压充电IC解决方案

描述 MP2760是一款集成窄电压DC&#xff08;NVDC&#xff09;电源路径管理功能和USB On-the-Go(OTG)功能的升降压充电IC&#xff0c;兼容USB PD&#xff0c;适用于单节至4节串联的电池包应用。该芯片的充电输入电压范围广&#xff0c;可支持最高22V。 当启用电池放电模式&…

深入学习Synchronized各种使用方法

文章目录 前言一、synchronized关键字通用在下面四个地方&#xff1a;1.1synchronized修饰实例方法1.2synchronized修饰静态方法&#xff1a;1.3synchronized修饰实例方法的代码块1.4synchronized修饰静态方法的代码块2.读入数据 二.Sychronized关键特性2.1互斥2.2 刷新内存2.3…

CentOS 7 虚拟机java项目部署tomcat

首先安装java环境 下载安装包:jdk-19_linux-x64_bin.tar.gz_免费高速下载|百度网盘-分享无限制 (baidu.com) 将安装包上传到虚拟机 解压 tar zxvf jdk-19_linux-x64_bin.tar.gz 移动文件到 mv jdk-19.0.1 /usr/jdk-19.0.1 编辑配置文件 vim /etc/profile export JAVA…

selenium原理

selenium执行条件 1、测试脚本。可以是python、java等语言编写的测试脚本&#xff1b; 2、浏览器驱动&#xff08;webdriver&#xff09;。不同的版本、不同的浏览器都需要对应的驱动&#xff1b; 3、浏览器 测试脚本 执行原理 1、cmd命令&#xff0c;启动chromedriver.exe…

SAP-PP:PP顾问管理系统的相关建议

本博客将探讨生产计划领域的控制要点。这将有助于减少仓库库存不准确情况&#xff0c;因为库存不准确会导致实物库存、发货、成本核算和计划方面出现许多效率低下的问题。 在物料主数据关键字段中&#xff0c;必须配置计划交货时间、GR处理时间、内部生产时间、计划交货时间&a…

解决cad找不到msvcr100.dll的有效方法,完美修复dll问题

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是由于找不到msvcr100.dll文件而导致CAD软件无法正常运行的情况&#xff0c;系统无法找到所需的动态链接库文件。但是通过一些简单的解决方法&#xff0c;我们可以快速解决这个问题并继续我们的…