一、题目描述:
给定一个长度为
保证
一个长度为
你可以若干次任意选择一个
1、
2、
此操作的代价为
求出所有长度为
数据范围:
二、解题思路:
令
式子推完了,说一下这题的几个关键点。
1、一开始要敢大胆写式子,大胆拆式子。
2、关于
3、
4、式子可以写成函数的形式,然后可以往已经推出来的函数上面转化。感觉这题里的转化方式还不少。
5、个人暂时水平较低,对于组合数中出现负数的情况尽量避免,调整好枚举的变量即可。
三、完整代码:
1 #include<iostream> 2 3 #define N 2500020 4 #define lim 2500010 5 #define ll long long 6 #define mod 998244353 7 #define rep(i,l,r) for(ll i=l;i<=r;i++) 8 #define per(i,r,l) for(int i=r;i>=l;i--) 9 10 using namespace std; 11 12 ll n,ans,A,B,F,G,V; 13 ll p,k,a11,a12,a21,a22; 14 15 ll fac[N],inv[N]; 16 ll a[N],b[N],c[N]; 17 18 ll ksm(ll base,ll q){ 19 ll res=1; while(q){ 20 if(q&1) res*=base,res%=mod; 21 base*=base,base%=mod,q>>=1; 22 } return res; 23 } 24 void add(ll &u,ll v){ 25 u+=v; 26 if(u>=mod) u-=mod; 27 } 28 ll C(ll n,ll m){ 29 if(n<0||m<0||n<m) return 0; 30 return fac[n]*inv[m]%mod*inv[n-m]%mod; 31 } 32 33 ll calc(ll x){ 34 B=n-1;A=B+V-k; 35 if(p<x){ 36 F=C(A-p-1,B-p),G=C(A-p,B-p); 37 add(a21,(C(k+p,p)*F+C(k+p-1,p)*G)%mod); 38 add(a22,(C(k+p,p+1)*F+C(k-1+p,p+1)*G)%mod); 39 p++; 40 } 41 42 B=n-p-1;A=V+B; 43 while(k<b[x]){ 44 F=C(A-k-1,B),G=C(A-k,B); 45 add(a12,(C(k+p,p)*F+C(k+p-1,p)*G)%mod); 46 add(a11,(C(k+p-1,k)*G+C(k+p,p-1)*F)%mod); 47 k++; 48 } 49 return ((mod+a11-a21)*b[x]+(mod+a22-a12)*x)%mod*c[x]%mod; 50 } 51 52 void solve(){ 53 cin>>n; ans=0; 54 55 rep(i,1,n) cin>>b[i]; 56 rep(i,1,n-1) cin>>c[i]; 57 rep(i,1,n) b[i]+=b[i-1]; 58 59 V=b[n]; p=1,k=0,a11=0,a12=0; 60 a21=C(V+n-2,V-1),a22=C(V+n-1,n); 61 62 rep(i,1,n-1) add(ans,calc(i)); 63 cout<<ans<<'\n'; 64 } 65 66 signed main(){ 67 ios::sync_with_stdio(false); 68 cin.tie(0); cout.tie(0); 69 70 fac[0]=1; rep(i,1,lim) fac[i]=fac[i-1]*i%mod; 71 inv[lim]=ksm(fac[lim],mod-2); per(i,lim,1) inv[i-1]=inv[i]*i%mod; 72 73 ll T; cin>>T; 74 rep(i,1,T) solve(); 75 76 return 0; 77 }
四、写题心得:
好题,知识点不难,但题就是难,比较繁琐。
喜欢
还是掌握了许多推式子的技巧,收获很大,但太耗时间了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】