- 求和
- 2016-08-27 11:05:32 @
#include<cstdio>
#include<cmath>
using namespace::std;
typedef long long ll;
int num[100010];
int col[100010][2][4];//(i,m,0)表示所有color为i的符合条件的数的个数,1为n1+n2+n3...以此类推,2为k1+k2+k3,3为
int n,c;
ll ans=0;
int main()
{
scanf("%d%d",&n,&c);
for(int i=1;i<=n;i++){
scanf("%d",&num[i]);
}
for(int i=1;i<=n;i++){
int j;
scanf("%d",&j);
int k=i%2;
col[j][k][0]++;
col[j][k][1]=(col[j][k][1]+num[i])%10007;
col[j][k][2]=(col[j][k][2]+i)%10007;
col[j][k][3]=(col[j][k][3]+i*num[i])%10007;
}
for(int i=1;i<=c;i++){
if(col[i][0][0]>=2){
ans=ans+(1LL*(col[i][0][0]-2)*(col[i][0][3]))%10007+1LL*(col[i][0][1]*col[i][0][2])%10007;
ans=ans%10007;
}
if(col[i][1][0]>=2){
ans=ans+(1LL*(col[i][1][0]-2)*(col[i][1][3]))%10007+1LL*(col[i][1][1]*col[i][1][2])%10007;
ans=ans%10007;
}
}
printf("%lld",ans);
}
1 条评论
-
核糖核酸 LV 8 @ 2016-11-25 16:04:07
兄弟,你绝壁是爆int了。
- 1
信息
- ID
- 1976
- 难度
- 8
- 分类
- (无)
- 标签
- 递交数
- 3003
- 已通过
- 400
- 通过率
- 13%
- 被复制
- 16
- 上传者