TLE,哪里可以再修改,降时间复杂度
查看原帖
TLE,哪里可以再修改,降时间复杂度
117192
无产者万岁楼主2020/8/20 10:54
#include <bits/stdc++.h>
using namespace std;
long long read()
{
    long long x=0,f=1;
	char c=getchar();
    while(c<'0'||c>'9')
	{
		if(c=='-')
			f=-1;
		c=getchar();
	}
    while(c>='0'&&c<='9')
	{
		x=x*10+c-'0';
		c=getchar();
	}
    return x*f;
}
void write(long long x)
{
     if(x<0) 
	 	putchar('-'),x=-x;
     if(x>9) 
	 	write(x/10);
     putchar(x%10+'0');
}
int main()
{
	long long n=read(),m=read(),col[100001]={0},num[100001]={0},ans=0;
	for(int i=1;i<=n;i++)
		num[i]=read();
	for(int i=1;i<=n;i++)
		col[i]=read();
	for(int i=1;i<=n-2;i++)
		for(int j=1;j<=(n-i)/2;j++)
		{
			if(i+2*j>n)
				break;
			if(col[i]==col[i+2*j])
			{
				ans+=(i+i+2*j)*(num[i]+num[i+2*j]);
				ans%=10007;
			}	
		}			
	write(ans);
	return 0;
} 
2020/8/20 10:54
加载中...