[蓝桥杯 2015 省 A] 灾后重建

Luogu
IDLGP8626
Time1000ms
Memory512MB
DifficultyP6
2015生成树蓝桥杯省赛根号分治
Pear 市一共有 $N$($ \le 50000$)个居民点,居民点之间有 $M$($ \le 2\times 10^5$)条双向道路相连。这些居民点两两之间都可以通过双向道路到达。这种情况一直持续到最近,一次严重的地震毁坏了全部 $M$ 条道路。 震后,Pear 打算修复其中一些道路,修理第 $i$ 条道路需要 $P_i$ 的时间。不过,Pear 并不打算让全部的点连通,而是选择一些标号特殊的点让他们连通。 Pear 有 $Q$($ \le 50000$)次询问,每次询问,他会选择所有编号在 $[l,r]$ 之间,并且编号 $\bmod{K}=C$ 的点,修理一些路使得它们连通。由于所有道路的修理可以同时开工,所以完成修理的时间取决于花费时间最长的一条路,即涉及到的道路中 $P_i$ 的最大值。 你能帮助 Pear 计算出每次询问时需要花费的最少时间么?这里询问是独立的,也就是上一个询问里的修理计划并没有付诸行动。 ## Input 第一行三个正整数 $N$、$M$、$Q$,含义如题面所述。 接下来 $M$ 行,每行三个正整数 $X_i$、$Y_i$、$P_i$,表示一条连接 $X_i$ 和 $Y_i$ 的双向道路,修复需要 $P_i$ 的时间。可能有自环,可能有重边。$1 \le P_i \le 10^6$。 接下来 $Q$ 行,每行四个正整数 $L_i$、$R_i$、$K_i$、$C_i$,表示这次询问的点是 $[L_i,R_i]$ 区间中所有编号 $\bmod{K_i}=C_i$ 的点。保证参与询问的点至少有两个。 ## Output 输出 $Q$ 行,每行一个正整数表示对应询问的答案。 [samples] ## Note 对于 $20\%$ 的数据,$N,M,Q \le 30$。 对于 $40\%$ 的数据,$N,M,Q \le 2000$。 对于 $100\%$ 的数据,$N \le 50000,M \le 2 \times 10^5,Q \le 50000.P_i \le 10^6.L_i,R_i,K_i$ 均在 $[1,N]$ 范围内,$C_i$ 在 $[0,K_i)$ 范围内。 时限 5 秒, 256M。 蓝桥杯 2015 年省赛 A 组 J 题。
Samples
Input #1
7 10 4
1 3 10
2 6 9
4 1 5
3 7 4
3 6 9
1 5 8
2 7 4
3 2 10
1 7 6
7 6 9
1 7 1 0
1 7 3 1
2 5 1 0
3 7 2 1
Output #1
9
6
8
8
API Response (JSON)
{
  "problem": {
    "name": "[蓝桥杯 2015 省 A] 灾后重建",
    "description": {
      "content": "Pear 市一共有 $N$($ \\le 50000$)个居民点,居民点之间有 $M$($ \\le 2\\times 10^5$)条双向道路相连。这些居民点两两之间都可以通过双向道路到达。这种情况一直持续到最近,一次严重的地震毁坏了全部 $M$ 条道路。 震后,Pear 打算修复其中一些道路,修理第 $i$ 条道路需要 $P_i$ 的时间。不过,Pear 并不打算让全部的点连通,而是选择一些标号特殊",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P6"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP8626"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Pear 市一共有 $N$($ \\le 50000$)个居民点,居民点之间有 $M$($ \\le 2\\times 10^5$)条双向道路相连。这些居民点两两之间都可以通过双向道路到达。这种情况一直持续到最近,一次严重的地震毁坏了全部 $M$ 条道路。\n\n震后,Pear 打算修复其中一些道路,修理第 $i$ 条道路需要 $P_i$ 的时间。不过,Pear 并不打算让全部的点连通,而是选择一些标号特殊...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments