题解用了一点我看不懂的符号QWQ,我还是暴力40
#include<bits/stdc++.h>
using namespace std;
int n,m;
long long maxid=0;
struct BH{
int number,color;
};
int main(){
BH bh[100001];
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
scanf("%d",&bh[i].number);
}
for(int i=1;i<=n;i++){
scanf("%d",&bh[i].color);
}
for(int i=1;i<=n-2;i++){
for(int j=i+1;j<=n-1;j++){
if(bh[i].color==bh[2*j-i].color){
long long a=2*j*(bh[i].number+bh[2*j-i].number);
maxid+=a;
}
}
}
printf("%lld",maxid%10007);
return 0;
}
求简洁易懂的解释;
另提(可以不看):我荒废了一段时间没动c++,有些东西都要忘了(但我原来也很菜做不起),大佬们推的数学方法是怎么做到的?我感觉自己找不到做题切入方向,只能乞求暴力出奇迹了。
另另提:洛谷灌水区逝了,有没有其他的帖子网站可以让我灌水或者问一些无关编程的问题?