NOIP#P2671. [NOIP 2015 普及组] 求和

提交0 通过0
通过率0%
时间限制1000ms
内存限制128MiB

题目描述

题目背景

NOIP2015 普及组 T3

题目描述

一条狭长的纸带被均匀划分出了 nn 个格子,格子编号从 11nn。每个格子上都染了一种颜色 coloricolor_i(用 [1,m][1,m] 当中的一个整数表示),并且写了一个数字 numberinumber_i

编号 1 2 3 4 5 6
颜色和数字 5\color{blue}{5} 3\color{red}{3} 2\color{red}{2} 2\color{blue}{2} 2\color{red}{2}

定义一种特殊的三元组:(x,y,z)(x,y,z),其中 x,y,zx,y,z 都代表纸带上格子的编号,这里的三元组要求满足以下两个条件:

  1. x,y,zx,y,z 都是整数,x<y<z,yx=zyx<y<z,y-x=z-y

  2. colorx=colorzcolor_x=color_z

满足上述条件的三元组的分数规定为 (x+z)×(numberx+numberz)(x+z) \times (number_x+number_z)。整个纸带的分数规定为所有满足条件的三元组的分数的和。这个分数可能会很大,你只要输出整个纸带的分数除以 1000710007 所得的余数即可。

输入格式

第一行是用一个空格隔开的两个正整数 nnmmnn 表示纸带上格子的个数,mm 表示纸带上颜色的种类数。

第二行有 nn 个用空格隔开的正整数,第 ii 个数字表示纸带上编号为 ii 的格子上面写的数字 numberinumber_i

第三行有 nn 个用空格隔开的正整数,第 ii 个数字表示纸带上编号为 ii 的格子染的颜色 coloricolor_i

输出格式

一个整数,表示所求的纸带分数除以 1000710007 所得的余数。

样例

6 2
5 5 3 2 2 2
2 2 1 1 2 1
82
15 4
5 10 8 2 2 2 9 9 7 7 5 6 4 2 4
2 2 3 3 4 3 3 2 4 4 4 4 1 1 1
1388

说明与提示

样例 1 解释

纸带如题目描述中的图所示。

所有满足条件的三元组为:(1,3,5),(4,5,6)(1, 3, 5), (4, 5, 6)

所以纸带的分数为 $(1 + 5) \times (5 + 2) + (4 + 6) \times (2 + 2) = 42 + 40 = 82$。

对于第 11 组至第 22 组数据, 1n100,1m51 ≤ n ≤ 100, 1 ≤ m ≤ 5

对于第 33 组至第 44 组数据,1n3000,1m1001 ≤ n ≤ 3000, 1 ≤ m ≤ 100

对于第 55 组至第 6 6 组数据,1n105,1m1051 ≤ n ≤ 10^5, 1 ≤ m ≤ 10^5,且不存在出现次数超过 20 20 的颜色;

对于全部 1010 组数据,$1 ≤ n ≤ 10^5, 1 ≤ m ≤ 10^5, 1 ≤ color_i ≤ m,1≤number_i≤10^5$。

99 4
846 755 804 564 260 447 870 686 435 723 243 785 251 486 654 268 694 630 661 596 866 656 651 240 604 984 863 634 303 191 643 210 810 64 863 654 927 102 974 702 680 796 285 936 956 470 669 563 928 708 508 341 126 10 475 303 971 873 265 254 731 889 78 330 26 887 128 397 855 788 448 797 182 371 992 315 926 403 521 634 574 400 668 373 114 377 912 149 255 915 477 528 187 19 618 664 747 119 808
1 3 2 3 3 3 4 1 3 2 4 2 4 3 1 1 3 2 3 2 4 2 4 3 4 3 3 4 2 3 2 1 2 2 2 4 3 3 3 4 2 4 4 3 4 3 4 2 2 4 3 4 2 1 1 3 4 1 2 4 1 4 1 4 4 3 2 1 3 2 1 3 4 2 3 3 1 1 1 3 1 4 1 3 3 4 2 2 3 2 4 2 2 1 1 4 4 2 4
9241