求助 Cnoi T2
  • 板块学术版
  • 楼主_Fatalis_
  • 当前回复11
  • 已保存回复11
  • 发布时间2022/1/31 07:08
  • 上次更新2023/10/28 10:00:00
查看原帖
求助 Cnoi T2
414231
_Fatalis_楼主2022/1/31 07:08
#include<bits/stdc++.h>
#define int long long
using namespace std;
#define mod 998244353

int qpow(int base,int p){
	if(p==1) return base;
	else if(p==0) return 1;
	else
	{
		int ans=qpow(base,p/2)%mod;
		long long ans1=(ans%mod*ans%mod)%mod;
		if(p%2==1) ans1=(ans1%mod*base%mod)%mod;
		ans1=ans1%mod;
		return ans1;
	}
} 

int a[1000001],b[1000001];
main()
{
    int n,k;
    cin>>n>>k;
    if(k==0) writeln(n),exit(0);
    for(int i=1;i<=n;i++) cin>>a[i];
    for(int i=1;i<=n;i++) cin>>b[i];


    int Q=0,sa=0,sb=0;
    for(int i=1;i<=n;i++)
    {
        Q+=a[i]*b[i]%mod,Q%=mod;
        sa+=a[i],sa%=mod;
        sb+=b[i],sb%=mod;
    }
    Q=qpow(Q,k-1);

    int ans=sa*sb%mod*Q%mod;
    
    cout<<ans<<endl;

    return 0;
}

整体思路和题解一摸一样,但是wa

wa的点都是负数,但是我看不出来哪里溢出了 :(

2022/1/31 07:08
加载中...