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

python解CCF-CSP真题《202209-1 如此编码》

想查看其他题的真题及题解的同学可以前往查看:CCF-CSP真题附题解大全

试题编号:202209-1
试题名称:如此编码
时间限制:1.0s
内存限制:512.0MB
问题描述:

题目背景

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

题目描述

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

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

首先定义一个辅助数组 ci,表示数组 ai 的前缀乘积。当 1≤i≤n 时,满足:
ci=a1×a2×⋯×ai

特别地,定义 c0=1。

于是 m 便可按照如下公式算出:
m=∑i=1nci−1×bi=c0×b1+c1×b2+⋯+cn−1×bn

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

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

输入格式

从标准输入读入数据。

输入共两行。

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

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

输出格式

输出到标准输出。

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

样例1输入

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

样例1输出

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

样例2输入

4 0
2 3 2 5

样例2输出

0 0 0 0

样例3输入

7 23333
3 5 20 10 4 3 10

样例3输出

2 2 15 7 3 1 0

样例3解释

i1234567
ai3520104310
bi22157310
ci−1131530030001200036000

子任务

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

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

提示

对任意的 1≤j≤n,因为 cj+1,cj+2,⋯ 均为 cj 的倍数,所以 m 除以 cj 的余数具有如下性质:


其中 % 表示取余运算。令 j 取不同的值,则有如下等式:
m % c1 = c0×b1

m % c2 = c0×b1+c1×b2

m % c3 = c0×b1+c1×b2+c2×b3⋯

 真题来源:如此编码

 感兴趣的同学可以如此编码进去进行练习提交

满分题解:

n, m = map(int, input().split())
a = list(map(int, input().split()))
b = []
c = 1
tc = 1
temp = 0
for i in a:
    tc = i*tc
    b.append((m%tc-temp)//c)
    c = tc
print(*b)

运行结果: 

相关文章:

  • 数据分析可视化08 案例 2:历史数据变化趋势图设计
  • Redis-缓存击穿
  • 信息学奥赛一本通:2072:【例2.15】歌手大奖赛
  • 【Linux】进程控制 (万字)
  • ARMv9新特性:虚拟内存系统架构 (VMSA) 的增强功能
  • 【JavaSE】之流程控制与方法
  • SpringCloud——网关1
  • 『Android基础入门』ViewPager+Fragment+BottomNavigationView实现底部导航
  • Regmap子系统:(寄存器映射)
  • 用通俗易懂的方式讲解:lightGBM 算法及案例(Python 代码)
  • TC8:TCP_CONTROL_FLAGS_05-08
  • 2022年华为杯研究生数学建模竞赛ABCDEF题思路资料汇总贴
  • JavaScript原生之垃圾回收原理、标记清理原理
  • python解CCF-CSP真题《202209-2 何以包邮?》
  • 【面试必刷TOP101】面试官:如何删除有序链表中重复的元素?
  • bootstrap创建登录注册页面
  • codis proxy处理流程
  • JavaScript-Array类型
  • JavaScript设计模式系列一:工厂模式
  • Laravel 中的一个后期静态绑定
  • Lsb图片隐写
  • nginx 配置多 域名 + 多 https
  • spring cloud gateway 源码解析(4)跨域问题处理
  • windows下如何用phpstorm同步测试服务器
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 小程序01:wepy框架整合iview webapp UI
  • 一个完整Java Web项目背后的密码
  • 赢得Docker挑战最佳实践
  • Prometheus VS InfluxDB
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #pragma预处理命令
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (16)Reactor的测试——响应式Spring的道法术器
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (7)STL算法之交换赋值
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot教学评价 毕业设计 641310
  • (五)关系数据库标准语言SQL
  • (一)Neo4j下载安装以及初次使用
  • (转)nsfocus-绿盟科技笔试题目
  • .Family_物联网
  • .NET delegate 委托 、 Event 事件
  • .NET Micro Framework 4.2 beta 源码探析
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .net Stream篇(六)
  • .net 简单实现MD5
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • /etc/shadow字段详解
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • @SpringBootApplication 包含的三个注解及其含义
  • [BUUCTF NewStarCTF 2023 公开赛道] week4 crypto/pwn
  • [C进阶] 数据在内存中的存储——浮点型篇