2026年3月GESP真题及题解(C++七级):拆分

四季读书网 3 0
2026年3月GESP真题及题解(C++七级):拆分

2026年3月GESP真题及题解(C++七级):拆分

2026年3月GESP真题及题解(C++七级):拆分-第1张图片-四季读书网

题目描述

小 A 想将正整数 2026年3月GESP真题及题解(C++七级):拆分-第2张图片-四季读书网 拆分成若干个正整数之和,并最大化拆分后的正整数之积。小 A 希望你帮他计算出拆分后正整数之积的最大值。由于答案可能很大,你只需要求出答案对 2026年3月GESP真题及题解(C++七级):拆分-第3张图片-四季读书网 取模的结果。

形式化地,2026年3月GESP真题及题解(C++七级):拆分-第4张图片-四季读书网 的拆分是满足 2026年3月GESP真题及题解(C++七级):拆分-第5张图片-四季读书网 的若干个正整数 2026年3月GESP真题及题解(C++七级):拆分-第6张图片-四季读书网,其中 2026年3月GESP真题及题解(C++七级):拆分-第7张图片-四季读书网。你需要求出 2026年3月GESP真题及题解(C++七级):拆分-第8张图片-四季读书网 的所有拆分中 2026年3月GESP真题及题解(C++七级):拆分-第9张图片-四季读书网 的最大值对 2026年3月GESP真题及题解(C++七级):拆分-第10张图片-四季读书网 取模的结果。

输入格式

第一行,一个正整数 2026年3月GESP真题及题解(C++七级):拆分-第11张图片-四季读书网,表示数据组数。

对于每组数据:一行,一个整数 2026年3月GESP真题及题解(C++七级):拆分-第12张图片-四季读书网,表示给定的正整数。

输出格式

对于每组数据:输出一行,一个整数,表示 2026年3月GESP真题及题解(C++七级):拆分-第13张图片-四季读书网 拆分后正整数之积的最大值对 2026年3月GESP真题及题解(C++七级):拆分-第14张图片-四季读书网 取模的结果。

输入输出样例 1

输入 1
358100
输出 1
618755407364

说明/提示

对于 2026年3月GESP真题及题解(C++七级):拆分-第15张图片-四季读书网 的测试点,保证 2026年3月GESP真题及题解(C++七级):拆分-第16张图片-四季读书网

对于所有测试点,保证 2026年3月GESP真题及题解(C++七级):拆分-第17张图片-四季读书网2026年3月GESP真题及题解(C++七级):拆分-第18张图片-四季读书网

思路分析

本题要求将正整数 2026年3月GESP真题及题解(C++七级):拆分-第19张图片-四季读书网 拆分成若干个正整数之和,使得这些正整数的乘积最大,并输出该最大值对 2026年3月GESP真题及题解(C++七级):拆分-第20张图片-四季读书网 取模的结果。这是一个经典的整数拆分问题,其最优策略是尽量多地使用 2026年3月GESP真题及题解(C++七级):拆分-第21张图片-四季读书网 作为拆分因子,因为 2026年3月GESP真题及题解(C++七级):拆分-第22张图片-四季读书网 能在保持和不变的情况下使乘积最大化。具体推导如下:

  • 当 2026年3月GESP真题及题解(C++七级):拆分-第23张图片-四季读书网 时,不拆分(即只用一个数 2026年3月GESP真题及题解(C++七级):拆分-第24张图片-四季读书网)得到的乘积最大,因此答案就是 2026年3月GESP真题及题解(C++七级):拆分-第25张图片-四季读书网 本身。
  • 当 2026年3月GESP真题及题解(C++七级):拆分-第26张图片-四季读书网 时,将 2026年3月GESP真题及题解(C++七级):拆分-第27张图片-四季读书网 写成 2026年3月GESP真题及题解(C++七级):拆分-第28张图片-四季读书网,其中 2026年3月GESP真题及题解(C++七级):拆分-第29张图片-四季读书网2026年3月GESP真题及题解(C++七级):拆分-第30张图片-四季读书网。根据余数 2026年3月GESP真题及题解(C++七级):拆分-第31张图片-四季读书网 的不同,最优拆分方案为: 
    • 若 2026年3月GESP真题及题解(C++七级):拆分-第32张图片-四季读书网,则全部拆成 2026年3月GESP真题及题解(C++七级):拆分-第33张图片-四季读书网,乘积为 2026年3月GESP真题及题解(C++七级):拆分-第34张图片-四季读书网
    • 若 2026年3月GESP真题及题解(C++七级):拆分-第35张图片-四季读书网,则将最后一个 2026年3月GESP真题及题解(C++七级):拆分-第36张图片-四季读书网 与 2026年3月GESP真题及题解(C++七级):拆分-第37张图片-四季读书网 合并成两个 2026年3月GESP真题及题解(C++七级):拆分-第38张图片-四季读书网(因为 2026年3月GESP真题及题解(C++七级):拆分-第39张图片-四季读书网),即拆成 2026年3月GESP真题及题解(C++七级):拆分-第40张图片-四季读书网 个 2026年3月GESP真题及题解(C++七级):拆分-第41张图片-四季读书网 和两个 2026年3月GESP真题及题解(C++七级):拆分-第42张图片-四季读书网,乘积为 2026年3月GESP真题及题解(C++七级):拆分-第43张图片-四季读书网
    • 若 2026年3月GESP真题及题解(C++七级):拆分-第44张图片-四季读书网,则拆成 2026年3月GESP真题及题解(C++七级):拆分-第45张图片-四季读书网 个 2026年3月GESP真题及题解(C++七级):拆分-第46张图片-四季读书网 和一个 2026年3月GESP真题及题解(C++七级):拆分-第47张图片-四季读书网,乘积为 2026年3月GESP真题及题解(C++七级):拆分-第48张图片-四季读书网

由于 2026年3月GESP真题及题解(C++七级):拆分-第49张图片-四季读书网 最大可达 2026年3月GESP真题及题解(C++七级):拆分-第50张图片-四季读书网,且最多有 2026年3月GESP真题及题解(C++七级):拆分-第51张图片-四季读书网 组数据,直接计算 2026年3月GESP真题及题解(C++七级):拆分-第52张图片-四季读书网 的幂会非常大,因此需要使用快速幂取模,模数为 2026年3月GESP真题及题解(C++七级):拆分-第53张图片-四季读书网

代码实现

#include<bits/stdc++.h>using namespace std;const int mod = 1e9// 模数 10^9// 快速幂函数,计算 a^b % modintqp(int a, int b){    int r = 1;          // 结果初始化为 1    while (b) {         // 当指数 b 不为 0 时循环        if (b & 1)      // 如果 b 的二进制最低位为 1            r = 1ll * r * a % mod; // 将当前底数乘入结果并取模        a = 1ll * a * a % mod;     // 底数平方,准备下一位        b >>= 1;        // 指数右移一位    }    return r;}intmain(){    ios::sync_with_stdio(false); // 加速输入输出    cin.tie(nullptr);    int t;      // 数据组数    cin >> t;    while (t--) {        int n;  // 当前要拆分的数        cin >> n;        int ans; // 存储答案        if (n <= 4) {          // n ≤ 4 时,不拆分就是最优            ans = n % mod;        } else {            int a = n / 3;     // 3 的个数            int r = n % 3;     // 余数            if (r == 0) {       // 余数为 0,全部用 3                ans = qp(3, a);            } else if (r == 1) { // 余数为 1,将 3+1 换成 2+2                // 此时 a ≥ 1,因为 n ≥ 5                ans = 4ll * qp(3, a - 1) % mod;            } else {            // 余数为 2,加一个 2                ans = 2ll * qp(3, a) % mod;            }        }        cout << ans << '\n';    // 输出答案并换行    }    return 0;}

功能分析

  1. 算法核心
    :基于数学推导的贪心策略,将 2026年3月GESP真题及题解(C++七级):拆分-第54张图片-四季读书网 尽量拆分为 2026年3月GESP真题及题解(C++七级):拆分-第55张图片-四季读书网,并根据余数调整。时间复杂度为 2026年3月GESP真题及题解(C++七级):拆分-第56张图片-四季读书网,其中 2026年3月GESP真题及题解(C++七级):拆分-第57张图片-四季读书网 是快速幂的复杂度,对于 2026年3月GESP真题及题解(C++七级):拆分-第58张图片-四季读书网 最多约 20 次运算,可以轻松应对 2026年3月GESP真题及题解(C++七级):拆分-第59张图片-四季读书网 组数据。
  2. 取模处理
    :所有乘法均使用 1ll* 转换为 64 位整数防止溢出,并即时对 2026年3月GESP真题及题解(C++七级):拆分-第60张图片-四季读书网 取模,确保答案在合法范围内。
  3. 边界情况
    :对 2026年3月GESP真题及题解(C++七级):拆分-第61张图片-四季读书网 进行了特判,避免了后续计算中可能出现的负指数(如 2026年3月GESP真题及题解(C++七级):拆分-第62张图片-四季读书网 时 2026年3月GESP真题及题解(C++七级):拆分-第63张图片-四季读书网 可能为负)。

各种学习资料,助力大家一站式学习和提升!!!

#include<bits/stdc++.h>using namespace std;intmain(){	cout<<"##########  一站式掌握信奥赛知识!  ##########";	cout<<"#############  冲刺信奥赛拿奖!  #############";	cout<<"######  课程购买后永久学习,不受限制!   ######";return 0;}

【秘籍汇总】(完整csp信奥赛C++学习资料):

1、csp/信奥赛C++,完整信奥赛系列课程(永久学习):

https://edu.csdn.net/lecturer/7901

2026年3月GESP真题及题解(C++七级):拆分-第64张图片-四季读书网

2、CSP信奥赛C++竞赛拿奖视频课:

https://edu.csdn.net/course/detail/404372026年3月GESP真题及题解(C++七级):拆分-第65张图片-四季读书网

3、csp信奥赛高频考点知识详解及案例实践:

信奥赛C++提高组csp-s高频考点知识详解(视频课):https://edu.csdn.net/course/detail/41081

CSP信奥赛C++动态规划:https://blog.csdn.net/weixin_66461496/category_13096895.html

CSP信奥赛C++标准模板库STL:https://blog.csdn.net/weixin_66461496/category_13108077.html

信奥赛C++提高组csp-s知识详解及案例实践:https://blog.csdn.net/weixin_66461496/category_13113932.html

4、csp信奥赛冲刺一等奖有效刷题题解:

CSP信奥赛C++初赛及复赛高频考点真题解析(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html

信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_13125089.html

5、GESP C++考级真题题解:

2026年3月GESP真题及题解(C++七级):拆分-第66张图片-四季读书网

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html

2026年3月GESP真题及题解(C++七级):拆分-第67张图片-四季读书网

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html

2026年3月GESP真题及题解(C++七级):拆分-第68张图片-四季读书网 GESP(C++ 七级+八级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_13117178.html

·     文末祝福    ·

#include<bits/stdc++.h>using namespace std;intmain(){	cout<<"跟着王老师一起学习信奥赛C++";	cout<<"    成就更好的自己!       ";	cout<<"  csp信奥赛一等奖属于你!   ";return 0;}
2026年3月GESP真题及题解(C++七级):拆分-第69张图片-四季读书网

抱歉,评论功能暂时关闭!