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

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.lryc.cn/news/253183.html

相关文章:

  • Ubuntu18.04安装Ipopt-3.12.8流程
  • linux 内核同步互斥技术之信号量
  • 交通强国添力量 无人机巡航为何备受期待?
  • 【PID学习笔记 6 】控制系统的性能指标之二
  • ZLMediakit-method ANNOUNCE failed: 401 Unauthorized(ffmpeg、obs推流rtmp到ZLM发现的问题)
  • 聊聊logback的ThrowableProxyConverter
  • Kubernetes(k8s)访问不了Pod服务
  • python-学生管理|汉罗塔
  • python 堆与栈
  • 园区规划技术要点
  • 深入浅出 Linux 中的 ARM IOMMU SMMU III
  • Linux系统---图书管理中的同步问题
  • Vue学习笔记-activated和deactivated生命周期
  • 102.套接字-Socket网络编程4(TCP通信流程)
  • spring boot 2 升级到 spring boot 3 后文件上传失败
  • Java Stream API 提供了一种非常方便的方式来比较两个 List 的差异,并取出不同的对象
  • C语言还会存在多久
  • 手持式安卓主板_PDA安卓板_智能手持终端方案
  • LeetCode103. Binary Tree Zigzag Level Order Traversal
  • PHP 判断给定两个时间是否在同一周,月,年
  • 单机无锁线程安全队列-Disruptor
  • 好工具知多少:国内外最常用的SCADA软件
  • SQL Server 2016(创建数据库)
  • Vue学习计划--Vue2(一)简单了解vue
  • 微信小程序生成二维码并保存到本地方法
  • shell_exec 和 exec区别
  • WPF创建进度条
  • 全网最新最全面的Appium自动化:Appium常用操作之混合应用webview页面操作--待补充!
  • 基于OpenCV+YOLOv5实现车辆跟踪与计数(附源码)
  • 05、pytest断言确定的异常