求优化
  • 板块学术版
  • 楼主Adolfo_North
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/5/3 11:21
  • 上次更新2023/10/23 16:49:06
查看原帖
求优化
616964
Adolfo_North楼主2023/5/3 11:21

https://www.luogu.com.cn/problem/P2671

洛谷AC了,但是某oj上时间超限。

#include<bits/stdc++.h>
const int mod=10007;
using namespace std;
long long n,m,ans;
struct node{
	long long num,co,p;
}a[100001];
bool cmp(node a,node b){
	if(a.p%2==b.p%2){
		if(a.co==b.co) return a.p<b.p;
		return a.co<b.co;
	}
	return a.p%2<b.p%2;
}
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>a[i].num;
	for(int i=1;i<=n;i++) {
		cin>>a[i].co;
		a[i].p=i;
	}
	sort(a+1,a+1+n,cmp);
	for(int i=1;i<=n;i++){
		for(int j=i+1;j<=n;j++){
			if((a[i].p+a[j].p)%2||a[i].co!=a[j].co) break;
            ans=(ans+(a[i].p+a[j].p)*(a[i].num+a[j].num))%mod;
		}
	}
	cout<<ans;
	return 0;
}
2023/5/3 11:21
加载中...