90pts 求助
查看原帖
90pts 求助
749219
Eva_91418楼主2024/7/17 19:08

rt,WA on #5 )

//dp。     :) 
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int M=998244353;
int f[1145140],g[1145140],n,b[1145140],ans=0;
char a;
signed main()
{
	cin>>n;
	cin>>b[1];
	f[1]=b[1]%M;
	g[1]=b[1]%M;
	ans=f[1]%M;
	for(int i=2;i<=n;i++)
	{
		cin>>a>>b[i];
		if(a=='+')
		{
			g[i]=b[i]%M*i%M;
			f[i]=f[i-1]%M+b[i]%M*i%M;
			//cout<<g[i]<<' '<<f[i]<<endl;
		}
		if(a=='*')
		{
			g[i]=(g[i-1]%M+1%M)*b[i]%M;
			f[i]=f[i-1]%M-g[i-1]%M+(g[i-1]%M+1%M)*b[i]%M;
			//cout<<g[i]<<" "<<f[i]<<endl;
		}
		ans+=f[i]%M;
	}
	cout<<ans%M;
	return 0;
}

2024/7/17 19:08
加载中...