春天温暖的阳光照耀着大地,正是草原上的小动物们最快乐的时候。小动物们在草原上开了一个舞会,欢度这美好的时光。
舞会上最重要的一个环节就是跳圆舞曲,�n 只小动物手拉手围成一大圈,随着音乐跳起来。在跳的过程中,小动物们可能会变换队形。它们的变换方式是动物 A 松开自己右手,动物 B 松开自己的左手,动物 A 和 B 手拉到一起,而它们对应的松开的手(如果有的话)也拉到一起。
例如,假设有 1010 只小动物,按顺序围成一圈,动物 11 的右手拉着动物 22 的左手,动物 22 的右手拉着动物 33 的左手,依次类推,最后动物 1010 的右手拉着动物 11 的左手。如果通过动物 22 和 88 变换队形,则动物 22 的右手拉着动物 88 的左手,而对应的动物 33 的左手拉着动物 77 的右手,这样形成了 1-2-8-9-10 和 3-4-5-6-7 两个圈。如果此时通过动物 22 和 66 变换队形,则将形成 1-2-6-7-3-4-5-8-9-10 一个大圈。注意,如果此时通过动物 11 和 22 变换队形,那么队形不会改变,因为动物 11 的右手和动物 22 的左手松开后又拉到一起了。
在跳舞的过程中,每个动物 �i 都有一个欢乐值 ��Hi 和一个感动值 ��Fi。
如果两个动物在一个圈中,欢乐值会彼此影响,产生欢乐能量。如果两个动物 �,�(�≠�)i,j(i=j) 在同一个大小为 �t 的圈中,而动物 �i 在动物 �j 右手的第 �p 个位置(动物 �j 右手的第 11 个位置就是动物 �j 右手所拉着的动物,而第 22 个位置就是右手第 11 个位置的动物右手拉着的动物,依次类推),则产生的欢乐能量为 (�−�)×��×��(t−p)×Hj×Fi。在跳舞的过程中,动物们的欢乐值和感动值有可能发生变化。
圆舞曲开始的时候,所有的动物按编号顺序围成一个圈,动物 �n 右手的第 �i 个位置正好是动物 �i。现在已知小动物们变换队形的过程和欢乐值、感动值变化的过程,求每次变换后所有动物所产生的欢迎能量之和。
原题链接:https://www.luogu.com.cn/problem/P8640
输入的第一行包含一个整数 �n,表示动物的数量。
接下来 �n 行,每行两个用空格分隔的整数 ��Hi,��Fi,按编号顺序给出每只动物的欢乐值和感动值。 接下来一行包含一个整数 �m,表示队形、欢乐值、感动值的变化次数。
接下来 �m 行,每行三个用空格分隔的整数 �k,�p,�q,当 �=1k=1 时,表示小动物们通过动物 �p 和动物 �q 变换了队形,当 �=2k=2 时,表示动物 �p 的欢乐值变为 �q,当 �=3k=3 时,表示动物 �p 的感动值变为了 �q。
输出 �m 行,每行一个整数,表示每次变化后所有动物产生的能量之和。
答案可能很大,你需要计算答案除以 10000000071000000007(即 109+7109+7) 的余数。
10
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
1 1
9
1 2 8
1 2 6
2 8 10
3 5 10
1 1 2
1 2 1
2 5 5
1 4 8
1 4 5
100
450
855
1341
1341
811
923
338
923
对于 20%20% 的数据,2≤�,�≤1002≤n,m≤100。
对于 30%30% 的数据,2≤�,�≤10002≤n,m≤1000。
另有 20%20% 的数据,只有 �=1k=1 的操作且 ��Hi,��Fi 均为 11。
另有 20%20% 的数据,只有 �=1k=1 或 22 的操作且 ��Fi 均为 11。
对于 100%100% 的数据,2≤�,�≤1052≤n,m≤105,0≤��,��≤1090≤Hi,Fi≤109,1≤�≤31≤k≤3,�=1k=1 时 1≤�,�≤�1≤p,q≤n 且 �≠�p=q,�=2k=2 或 33 时 1≤�≤�1≤p≤n 且 0≤�≤1090≤q≤109。