ABC399F - Range Power Sum 题解

AtCoder ABC339 A-E题解 AtCder ABC339题解 阅读详情

题意

给定 n,k 和长度为 n 的序列 A ,求:

$$
\sum_{1\le l\le r\le n} (\sum_{l\le i\le r}A_i)^k
$$

思路

DP+推式子+二项式定理。

假设:

$$
S_i=\sum_{i=1}^n A_i 
$$

$$
f_{i,B}=\sum_{l=1}^i(S_i-S_{l-1})\\
=\sum_{l=1}^{i-1}(S_i-S_{l-1})^B+(S_i-S_{i-1})^B\\
=\sum_{l=1}^{i-1}(S_{i-1}-S_{l-1}+A_i)^B+A_i^B\\
$$

即答案为:

$$
\sum_{i=1}^n f_{i,B}
$$

由二项式定理,得:

$$
\sum_{l=1}^{i-1}(S_{i-1}-S_{l-1}+A_i)^B\\
=\sum_{l=1}^{i-1}\sum_{k'=0}^B\text{C}^{k'}_BA_i^{(B-k')}(S_{i-1}-S_{l-1})^{k'}\\
=\sum_{k'=0}^B\text{C}^{k'}_BA_i^{(B-k')}\sum_{l=1}^{i-1}(S_{i-1}-S_{l-1})^{k'}\\
=\sum_{k'=0}^B\text{C}^{k'}_BA_i^{(B-k')}f_{i-1,k'}\\
$$

计算 f_{i,B} :

$$
f_{i,B}\\
=\sum_{l=1}^{i-1}(S_{i-1}-S_{l-1}+A_i)^B+A_i^B\\
=\sum_{k'=0}^B\text{C}^{k'}_BA_i^{(B-k')}f_{i-1,k'}+A_i^B\\
$$

代码

#include <bits/stdc++.h>
#define int long long 
using namespace std;
const int MOD=998244353;
int c[15][15];
int f[200010][15];
int a[200010];
void Inital(){
    c[0][0]=1;
    for(int i=1;i<=12;i++){
        for(int j=0;j<=i;j++){
            c[i][j]=c[i-1][j]+c[i-1][j-1];
            c[i][j]%=MOD;
        }
    }
}//求组合数 C(i,j)
int mypow(int x,int y){
    if(y==0)return 1ll;
    int k=mypow(x,y/2);
    if(y%2==0)return k*k%MOD;
    else return k*k%MOD*x%MOD;
}
signed main(){
    Inital();
    int n,k;
    scanf("%lld%lld",&n,&k);
    for(int i=1;i<=n;i++){
        scanf("%lld",&a[i]);
    }
    f[1][0]=1;
    for(int i=1;i<=k;i++){
        f[1][i]=f[1][i-1]*a[1]%MOD;
    }
    for(int i=2;i<=n;i++){
        f[i][0]=i;
        for(int B=1;B<=k;B++){
            for(int kp=0;kp<=B;kp++){
                f[i][B]+=c[B][kp]*mypow(a[i],B-kp)%MOD*f[i-1][kp]%MOD;
                f[i][B]%=MOD;
            }
            f[i][B]+=mypow(a[i],B);
            f[i][B]%=MOD;
        }
    }
    int ans=0;
    for(int i=1;i<=n;i++){
        ans+=f[i][k];
        ans%=MOD;
    }
    printf("%lld\n",ans);
    return 0; 
} 

【信息科学与工程学】计算机科学与自动化——第三十五篇 调度理论和调度算法01——资源调度算法 算法逻辑 阅读详情

相关推荐

告别纸上谈兵:在Xilinx Artix-7 FPGA上实测RGMII接口,从ILA抓包到PC Ping通全流程记录

本文详细记录了在Xilinx Artix-7 FPGA平台上实现RGMII接口的全过程,包括硬件配置、Vivado工程设置、双沿数据转换代码实现以及ILA波形分析。通过实测数据包捕获和PC端Ping测试,验证了千兆以太网通信的稳定性和可靠性,为工业通信网关等应用提供了实用参考。

weixin_33701251的博客 287

无痛学线性代数

无痛学线性代数

青少年趣味编程 1333

MT6816角度传感器SPI通信避坑指南:从数据手册到稳定读取的3个关键步骤

本文详细解析了MT6816角度传感器SPI通信中的常见问题与解决方案,包括寄存器地址计算、SPI时序配置和数据校验等关键步骤。通过实测波形和代码示例,帮助工程师避开数据手册中的隐藏陷阱,实现稳定可靠的角度数据读取,特别适用于高精度电机控制场景。

weixin_42520573的博客 516

ABC399.E题解

首先考虑是否有解, 然后再考虑最小操作步数, 观察什么情况下无解, 如果对于。一定无解(因为两个相等字符无法变为不同的字符), 假设有两个字符串。使得两个字符串相等, 因为无论变换哪个字符, 都会使得串中出现。, 然后变后面的字符, 最后换回来, 类似于。是可以的, 因为可以。

Ayanami_Rei的博客 412

薄膜电容寿命预测全解析:从理论到实践,5步搞定可靠性评估

本文全面解析薄膜电容寿命预测的理论与实践,提供五步可靠性评估流程,涵盖温度应力、电压应力等关键因素分析,并分享提升寿命的实用技巧。特别适用于新能源、电动汽车等领域的设计工程师,帮助准确预测薄膜电容在实际工况下的使用寿命。

weixin_33712987的博客 432

Python量化投资入门教程:从零构建你的第一个交易策略

量化投资教程以数学模型和计算机程序实现超额收益,选用Python工具链完成数据获取、策略构建及回测。通过移动平均线交叉策略示例,展示数据预处理、信号生成、收益计算及可视化全流程,结合收益率、最大回撤和夏普比率评估策略,并建议参数优化与策略融合提升稳健性。

ylmx5201314的博客 2456

abc398赛后笔记

我们再算距离的时候,其实就是算两节点深度与最近公共祖先的深度的差值之和,倘若换作根节点充当“最近公共祖先”,答案只会被多算两遍最近公共祖先到根节点的距离,又因为我们只考虑这个距离的奇偶性,所以这其实是没有影响的,由此这一步判断是否可行就可以。最极端的情况,每秒产生一团烟雾,直接莫提肯定是行不通的,因为我们此时是以篝火和高桥作为参照物的,移动的是超多的烟雾。根据样例可以发现,门的大小取决于墙长度的奇偶性(奇数的装一个门,双数的装双开门),发现这点后,按照题意模拟即可。看到题目的第一眼,我想到的是按题目模拟。

2401_87226921的博客 975

2025.06.25【微生物】|Emu工具安装与使用详解:全长16S扩增子微生物丰度分析

Emu是一款基于贝叶斯方法的微生物多样性分析工具,专为处理高错误率的长读长16S/18S扩增子数据优化。本文详细介绍了Emu的安装与使用方法:1)通过conda创建独立环境并安装Emu;2)提供SILVA等预构建数据库的下载指南,并说明自定义数据库的构建方法;3)演示单样本和多样本分析流程,解读关键输出文件;4)介绍丰度表合并、分类等级汇总等实用功能扩展;5)建议后续分析方向。文章还附有官方GitHub链接和相关文献资源,为微生物群落结构研究提供了一套完整的分析解决方案。

1256

【题解】AtCoder At_abc399_d [ABC399D] Switch Seats

这道题难度不大,个人感觉是普及提高−\color{gold}普及/提高-普及提高−左右。最后,希望这篇题解对你有帮助,如有想法欢迎评论或私信提出!

OI 生涯中的一些笔记和题解。 1297

IC验证 AHB-RAM 项目(二)——接口与事务代码的编写

本文介绍了准备工作及接口、事务相关代码编写要点。在接口部分,重点说明了lvc_ahb_if.sv、rkv_ahbram_if.sv和rkv_ahbram_tb.sv三个关键文件的功能,其中rkv_ahbram_if.sv通过动态任务实现复位信号控制。事务部分则涉及lvc_ahb_types.sv中的枚举类型定义和lvc_ahb_transaction.sv中的随机化变量设置,用于构建AHB传输激励。整个验证环境采用模块化设计,通过接口实现TB与DUT的通信,为后续验证工作奠定基础。

weixin_45926435的博客 405

SolidWorks软件安装管理程序在创建该注册表项时遇到错误: UNKNOWN\Components的解决方案

SolidWorks软件安装管理程序在创建该注册表项时遇到错误: UNKNOWN\Components的解决方案

Q82556499的博客 4169

[ABC399F] Range Power Sum题解

题目要求计算所有子数组和的K次方之和模998244353。给定长度为N的序列A和整数K,需要高效计算∑(∑A[l..r])^K对所有1≤l≤r≤N的和。通过预处理前缀和b[i]及其各次幂的前缀和数组c[i][j],并利用二项式分解公式,可以在O(NK^2)时间内完成计算。示例中当N=3,K=2时,结果为32+12+22+42+32+62=75。关键思路是维护前缀和及其幂次的前缀和,避免重复计算。

bz02_2023f2的博客 487

ABAP Channels 实战:在 ABAP 7.40 中用 WebSocket 打造实时双向通信

本文详细介绍了SAP ABAP 7.40引入的ABAP Channels通信框架,包含AMC(ABAP Messaging Channels)和APC(ABAP Push Channels)两部分。AMC作为应用服务器内部的消息总线,支持发布/订阅模式,可实现跨会话实时通信;APC基于WebSocket协议,用于浏览器等客户端与ABAP服务器的双向实时交互。文章通过一个乒乓球游戏案例展示了ABAP Channels的实时协作能力,并详细解析了AMC的配置方法、消息发送与接收的代码实现,帮助开发者理解如何利用

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 220

浅谈二项式定理·题解:AT_abc399_f [ABC399F] Range Power Sum

二项式定理(英语:binomial theorem),又称牛顿二项式定理,由艾萨克·牛顿于1664年、1665年间提出。该定理给出两个数之和的整数次幂诸如展开为类似项之和的恒等式。二项式定理可以推广到任意实数次幂,即广义二项式定理(x+y)n=Σr=0nCnran−rbr=Cn0an+Cn1an−1b+⋅⋅⋅+Cnran−rb+Cnnbn (x+y)^{n} = \Sigma_{r = 0}^{n}C_{n}^{r}a^{n-r}b^{r} = C_{n}^{0}a^{n} + C_{n}^{1} a^

MorningLa的博客 1056

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

深挖C++:类和对象(中)

(先进后出)

xys_678的博客 239

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

选型笔记:Type‑C 扩展坞方案评估|DP1.4 转 HDMI2.0 桥接芯片 GSV2201S@ACP

本文记录 GSV2201S 这款 DP1.4a 转 HDMI2.0 桥接芯片评估,梳理视频、HDCP、PD 集成能力,总结 Type‑C 转接 Dongle、扩展坞方案的适配边界,以及差分走线、PD 时序、HDCP 握手等高频调试问题,为 C 口视频转接方案选型提供参考。

ACP广源盛的博客 221

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C++移动构造函数详解

移动构造函数是C++11引入的一种特殊构造函数,用于从临时对象(右值)"窃取"资源来初始化新对象,而不是进行昂贵的深拷贝。char* data;public:// 移动构造函数:参数是右值引用 &&// 关键:把源对象的资源置空。

拒绝AI文,努力在AI时代写出感动人心的好文章 391

ThunderKittens 深度解析:一个不基于 MLIR 的 C++ 模板 GPU DSL

Triton 是"让更多人能写 GPU kernel",ThunderKittens 是"让会写的人写得更爽"。前者用 MLIR 换易用性,后者用 C++ 模板换可控性。它们不是替代关系,而是覆盖了 GPU 编程光谱的两端。ThunderKittens 的出现,本质上是对"GPU DSL 必须基于 MLIR"这一默认假设的挑战。编译期类型系统本身就可以是一个强大的 DSL 基础设施,不需要中间 IR,不需要黑盒 pass,也能实现 tile 级抽象和零运行时开销。

Maxwell_Newton的博客 337

【C语言】字符与字符串函数

C语言中字符串为以\0结尾的字符数组,标准库函数基于此约定。本文解析字符串内存布局,详解ctype.h与string.h中字符分类、长度计算、拷贝、比较等函数的使用要点,强调长度判断与越界风险,最后通过命令行待办事项示例整合fgets、sscanf、strncpy、strcmp,展示实际应用中的关键细节。

记录在学习过程中学到的知识 346

C++ 多态详解:作用、原理与实战用法

多态是C++面向对象的核心特性,通过虚函数实现运行期动态绑定,使同一接口在不同对象上表现出不同行为。其核心作用包括统一接口、提升可扩展性、降低耦合、支持运行时分派与批量处理。实现依赖虚函数表(vtable)和虚指针(vptr),需注意虚析构函数、对象切片等陷阱。相比编译期多态(模板),运行期多态灵活性高但有调用开销。合理结合两者,可兼顾代码的灵活性与性能,是构建可扩展、低耦合系统的关键。

2402_85743155的博客 382

C++ 函数模版

模板参数:● template ,T 就是类型占位符,名字可以自定义,习惯用T● 占位符可以在函数返回值、形参、函数内部当作类型使用使用要点模板代码一般写在头文件:编译器需要看到完整模板源码,才能在每个编译单元完成实例化全局函数、类内成员函数都可以写成模板实例化发生在编译阶段,不是运行时隐式实例化:调用时编译器自动推导实参类型,生成对应版本函数。

2501_94041724的博客 304

C++ 运行时多态与虚函数机制全面剖析【面试重点】

构成C++ 运行时多态必须是基类的指针或者引用调用虚函数。被调用的函数必须是虚函数,并且派生类必须对该虚函数完成重写/覆盖(Override)。只有基类的指针或引用才能既指向基类对象,又指向派生类对象(切片机制);而只有完成了虚函数重写,派生类与基类才具备不同的函数行为,达到“指向谁就调用谁”的效果。在类成员函数的前面加上virtual关键字修饰,该成员函数就成为了虚函数。public:// 成员函数前加 virtual 修饰,声明为虚函数。

Fuyo_0209的博客 437

#SQLite 数据库笔记一:(概念 / 终端指令 / SQL 语句 / C 编程 / 回调函数)

数据库 = 数据的仓库,假设数据是海量。能力说明存储数据持久化保存,程序退出数据还在统计数据、分组、排序数据管理增、删、改、查(CRUD)嵌入式设备上也会用数据库(单片机网关、路由器、工业 HMI 都常见),因为 sqlite 体积小、无需服务进程、单文件即可。数据库 = 库 > 表 > 记录(行) > 字段(列)sqlite3 = 开源、C 写的、单文件、免安装、最多 2T 的嵌入式关系型数据库。

lwq20051110的博客 205

【C++】【STL】string_OJ题

本文总结了9道C++ STL中关于string的OJ题目,按操作类型分为三组:反转与就地修改(如917、541、151)、计数与查找(如387、125、58)、模拟与大数运算(如415、43、8)。核心技巧包括双指针收敛、字符分类处理、进位控制及边界值处理。所有题目使用同一套源码,在标准库std::string与自定义容器MyString间切换仅需宏定义,验证结果一致性。代码通过随机测试用例与Trace函数逐行比对,确保逻辑正确性,强调接口对齐的重要性。

这里是Cocatrice的博客,感谢大家一直以来的支持和鼓励,如果对C/C++方向感兴趣的话,可以通过主页的微信名片加Cocatrice的好友,也可以通过邮箱:Chen31980094@163.com 联系,一同加油! 4371

C 语言 malloc() 详解与实战 Demo

本文详解C语言malloc()函数,涵盖其语法、内存原理及实战应用。通过动态整数、数组、结构体与链表的Demo,演示如何安全申请、使用与释放内存,强调避免内存泄漏与空指针检查的重要性,帮助开发者掌握动态内存管理核心技能。

tangPHP的博客 371

【C++ 基础入门】类和对象(上):封装、对象模型与 this 指针

C++类与对象知识(面向过程和面向对象的初步认识,类的初步认识,类的访问限定符及封装,类的作用域、实例化,类的对象模型,this指针)

2601_96587588的博客 880
下一篇: ABC400F - Happy Birthday! 3 题解
bitsetint
博客等级 码龄2年 13粉丝 2原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值