• 如此编码 202201-1 【CSP】


    题目背景

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

    题目描述

    已知某次测验包含 n 道单项选择题,其中第 i 题(1≤i≤n)有 ai 个选项,正确选项为 bi,满足 ai≥2 且 0≤bi

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

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

    特别地,定义 c0=1。

    于是 m 便可按照如下公式算出:
                                                                             

     

    易知,0≤m

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

    输入格式

    从标准输入读入数据。

    输入共两行。

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

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

    输出格式

    输出到标准输出。

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

    样例1输入

    1. 15 32767
    2. 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输入

    1. 4 0
    2. 2 3 2 5

    样例2输出

    0 0 0 0

    样例3输入

    1. 7 23333
    2. 3 5 20 10 4 3 10

    样例3输出

    2 2 15 7 3 1 0

    Data

    样例3解释

    i1234567
    ai3520104310
    bi22157310
    ci−1131530030001200036000

    子任务

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

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

    提示

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

     

    代码:

    1. # include
    2. using namespace std;
    3. int main() {
    4. // cout << "\n\t\t CSP总决赛,加油!!!!\n";
    5. int n,a[21], c[21], b[21];
    6. long long int m;
    7. cin >> n>> m;
    8. c[0] = 1;
    9. int sum_c_b = 0;
    10. for (int i = 1; i <= n; i++) {
    11. cin >> a[i];
    12. c[i] = c[i - 1] * a[i];
    13. b[i] = (m % c[i] - sum_c_b) / c[i - 1];
    14. sum_c_b += c[i - 1] * b[i];
    15. cout << b[i];
    16. if (i != n)
    17. cout << " ";
    18. }
    19. return 0;
    20. }

  • 相关阅读:
    为华生物Dextran-SH 葡聚糖巯基 巯基化葡聚糖的简介及应用说明
    MySQL-使用CPP接入到MySQL
    详解Linux内核态调试工具kdump
    vue中引入字体
    MS Access 教程之 ODBC 和本地表之间的链接缓慢?然后不要这样做。
    网络安全(黑客)——自学2024
    redis的java客户端之jedis
    目前最火的人工神经网络,神经网络软件有哪些
    JimuReport积木报表 v1.7.2 版本发布,低代码报表工具
    有没有容易写的金融学论文选题?
  • 原文地址:https://blog.csdn.net/QENGFENG/article/details/126441711