捞!
  • 板块灌水区
  • 楼主jingrongze
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/6/10 16:39
  • 上次更新2024/6/10 19:46:11
查看原帖
捞!
711461
jingrongze楼主2024/6/10 16:39

戳!

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
const int M=1000000007;
long long int a[N],b[N],pre_a[N],pre_b[N],c[N],pre_c[N];
int main()
{
	int n;
	int m;
	cin>>n>>m;
	for(int i=2; i<=n; i++)
	{
	    cin>>a[i];
		pre_a[i]=(pre_a[i-1]+a[i])%M; 
	}
	for(int i=1; i<=n; i++)
	{
	    cin>>b[i];
	    c[i]=(pre_a[i]*b[i])%M;
		pre_c[i]=(pre_c[i-1]+c[i])%M; 
		pre_b[i]=(pre_b[i-1]+b[i])%M; 
	}
	while(m--)
	{
		long long int x,l,r;
		cin>>x>>l>>r;
		long long int ans=0;
		if(x<l)
		{
			long long int s1=(pre_c[r]-pre_c[l-1]+M)%M;
			long long int s2=(pre_a[x]*((pre_b[r]-pre_b[l-1]+M)%M))%M; 
			ans=s1-s2;
		}
		else if(x>r)
		{
				long long int s3=pre_c[r]-pre_c[l-1];
				long long int s4=pre_a[x]*(pre_b[r]-pre_b[l-1]);
				ans=s4-s3;
		}
		else
		{
			long long int s1=(pre_c[x]-pre_c[l-1])%M;
			long long int s2=(pre_a[x]*((pre_b[x]-pre_b[l-1]+M)%M))%M;
			ans=s2-s1;
			long long int s3=(pre_c[r]-pre_c[x-1])%M;
			long long int s4=(pre_a[x]*((pre_b[r]-pre_b[x-1]+M)%M))%M;
			ans+=s3-s4;
		}
		cout<<ans<<endl;
	}
	return 0;
}

用例通过率为 0%,why? 求大佬帮助!

2024/6/10 16:39
加载中...