3个TLE,求优化
查看原帖
3个TLE,求优化
662503
guaiguaitu楼主2023/9/27 20:53
#include<bits/stdc++.h>
using namespace std;
int n,m,num[10000][10000],coler[100010],number[100010],ans=0;
int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++) scanf("%d",&number[i]);
	for(int i=1;i<=n;i++){
		scanf("%d",&coler[i]);
		num[coler[i]][0]++,num[coler[i]][num[coler[i]][0]]=i;
		coler[n+1]=max(coler[n+1],coler[i]);
	}
	for(int i=1;i<=coler[n+1];i++){
		for(int j=1;j<=num[i][0];j++){
			for(int l=j+1;l<=num[i][0];l++){
				if((num[i][l]-num[i][j])%2==0){
					ans=((ans%10007)+(((num[i][l]%10007)+(num[i][j]%10007))*((number[num[i][l]]%10007)+(number[num[i][j]]%10007))))%10007;
				}
			}
		}
	}
	printf("%d",ans);
	return 0;
}
2023/9/27 20:53
加载中...