[蓝桥杯 2016 国 A] 圆圈舞

Luogu
IDLGP8640
Time1000ms
Memory128MB
DifficultyP6
2016平衡树蓝桥杯国赛
春天温暖的阳光照耀着大地,正是草原上的小动物们最快乐的时候。小动物们在草原上开了一个舞会,欢度这美好的时光。 舞会上最重要的一个环节就是跳圆舞曲,$n$ 只小动物手拉手围成一大圈,随着音乐跳起来。在跳的过程中,小动物们可能会变换队形。它们的变换方式是动物 A 松开自己右手,动物 B 松开自己的左手,动物 A 和 B 手拉到一起,而它们对应的松开的手(如果有的话)也拉到一起。 例如,假设有 $10$ 只小动物,按顺序围成一圈,动物 $1$ 的右手拉着动物 $2$ 的左手,动物 $2$ 的右手拉着动物 $3$ 的左手,依次类推,最后动物 $10$ 的右手拉着动物 $1$ 的左手。如果通过动物 $2$ 和 $8$ 变换队形,则动物 $2$ 的右手拉着动物 $8$ 的左手,而对应的动物 $3$ 的左手拉着动物 $7$ 的右手,这样形成了 `1-2-8-9-10` 和 `3-4-5-6-7` 两个圈。如果此时通过动物 $2$ 和 $6$ 变换队形,则将形成 `1-2-6-7-3-4-5-8-9-10` 一个大圈。注意,如果此时通过动物 $1$ 和 $2$ 变换队形,那么队形不会改变,因为动物 $1$ 的右手和动物 $2$ 的左手松开后又拉到一起了。 在跳舞的过程中,每个动物 $i$ 都有一个欢乐值 $H_i$ 和一个感动值 $F_i$。 如果两个动物在一个圈中,欢乐值会彼此影响,产生欢乐能量。如果两个动物 $i, j(i\neq j)$ 在同一个大小为 $t$ 的圈中,而动物 $i$ 在动物 $j$ 右手的第 $p$ 个位置(动物 $j$ 右手的第 $1$ 个位置就是动物 $j$ 右手所拉着的动物,而第 $2$ 个位置就是右手第 $1$ 个位置的动物右手拉着的动物,依次类推),则产生的欢乐能量为 $(t-p)\times H_j\times F_i$。在跳舞的过程中,动物们的欢乐值和感动值有可能发生变化。 圆舞曲开始的时候,所有的动物按编号顺序围成一个圈,动物 $n$ 右手的第 $i$ 个位置正好是动物 $i$。现在已知小动物们变换队形的过程和欢乐值、感动值变化的过程,求每次变换后所有动物所产生的欢迎能量之和。 ## Input 输入的第一行包含一个整数 $n$,表示动物的数量。 接下来 $n$ 行,每行两个用空格分隔的整数 $H_i$,$F_i$,按编号顺序给出每只动物的欢乐值和感动值。 接下来一行包含一个整数 $m$,表示队形、欢乐值、感动值的变化次数。 接下来 $m$ 行,每行三个用空格分隔的整数 $k$,$p$,$q$,当 $k=1$ 时,表示小动物们通过动物 $p$ 和动物 $q$ 变换了队形,当 $k=2$ 时,表示动物 $p$ 的欢乐值变为 $q$,当 $k=3$ 时,表示动物 $p$ 的感动值变为了 $q$。 ## Output 输出 $m$ 行,每行一个整数,表示每次变化后所有动物产生的能量之和。 答案可能很大,你需要计算答案除以 $1000000007$(即 $10^9+7$) 的余数。 [samples] ## Note 对于 $20\%$ 的数据,$2\le n,m\le100$。 对于 $30\%$ 的数据,$2\le n,m\le1000$。 另有 $20\%$ 的数据,只有 $k=1$ 的操作且 $H_i$,$F_i$ 均为 $1$。 另有 $20\%$ 的数据,只有 $k=1$ 或 $2$ 的操作且 $F_i$ 均为 $1$。 对于 $100\%$ 的数据,$2\le n,m\le10^5$,$0\le H_i,F_i\le10^9$,$1\le k\le3$,$k=1$ 时 $1\le p,q\le n$ 且 $p\neq q$,$k=2$ 或 $3$ 时 $1\le p\le n$ 且 $0\le q\le10^9$。
Samples
Input #1
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
Output #1
100
450
855
1341
1341
811
923
338
923
API Response (JSON)
{
  "problem": {
    "name": "[蓝桥杯 2016 国 A] 圆圈舞",
    "description": {
      "content": "春天温暖的阳光照耀着大地,正是草原上的小动物们最快乐的时候。小动物们在草原上开了一个舞会,欢度这美好的时光。 舞会上最重要的一个环节就是跳圆舞曲,$n$ 只小动物手拉手围成一大圈,随着音乐跳起来。在跳的过程中,小动物们可能会变换队形。它们的变换方式是动物 A 松开自己右手,动物 B 松开自己的左手,动物 A 和 B 手拉到一起,而它们对应的松开的手(如果有的话)也拉到一起。 例如,假设有 $1",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 131072
    },
    "difficulty": {
      "LuoguStyle": "P6"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP8640"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "春天温暖的阳光照耀着大地,正是草原上的小动物们最快乐的时候。小动物们在草原上开了一个舞会,欢度这美好的时光。\n\n舞会上最重要的一个环节就是跳圆舞曲,$n$ 只小动物手拉手围成一大圈,随着音乐跳起来。在跳的过程中,小动物们可能会变换队形。它们的变换方式是动物 A 松开自己右手,动物 B 松开自己的左手,动物 A 和 B 手拉到一起,而它们对应的松开的手(如果有的话)也拉到一起。\n\n例如,假设有 $1...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments