60pts 后4点TLE
查看原帖
60pts 后4点TLE
737531
sheryang_WA楼主2022/8/2 10:21
#include <bits/stdc++.h>
using namespace std;
const int mod=998244353;//结果要mod  998244353 
long long n,k,l[101],a[101][1000001],ans=0,sum=0;//保险点开long long; 
int main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	{
		cin>>l[i];
		for(int j=1;j<=l[i];j++)
		{
			cin>>a[i][j];
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<i;j++)
		{
			int g=__gcd(l[i],l[j]);
			g=l[i]*l[j]/g;
			for(int k=1;k<=g;k++)
			{
				int i1=k%l[i];
				int j1=k%l[j];
				if(i1==0)
				{
					i1=l[i];
				}
				if(j1==0)
				{
					j1=l[j];
				}
				ans=(ans+(a[i][i1]%mod*(a[j][j1]%mod)%mod))%mod;
			}
			sum=max(sum,ans*(k/g)%mod);
			ans=0;
		}
	}
	cout<<sum;
	return 0;
}

2022/8/2 10:21
加载中...