CF1696E 题解
思路
数学题。
答案是唯一的。操作过程从左上到右下不可逆。每个点操作次数的贡献即每个点数的最大值。
类似于递推:
则答案为划定范围内所有
但这样是
又发现斜着看这其实是杨辉三角。
经过打表和 OEIS,发现:
补证明:
于是可以
code
int n,a[maxn],ans;
int pw[maxn],inv[maxn];
inline int ksm(int a,int b){
int ans=1;
while(b){
if(b&1)ans=ans*a%mod;
a=a*a%mod;
b>>=1;
}
return ans;
}
int C(int m,int n){
return pw[m]*inv[n]%mod*inv[m-n]%mod;
}
signed main(){
n=read();
for(int i=0;i<=n;i++)a[i]=read();
pw[0]=inv[0]=1;
for(int i=1;i<=maxn-10;i++)pw[i]=pw[i-1]*i%mod,inv[i]=ksm(pw[i],mod-2);
for(int i=0;i<=n;i++)ans+=C(a[i]+i,i+1),ans%=mod;
printf("%lld\n",ans);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架