#P14385. [JOISC 2017] 门票安排 / Arranging Tickets

    ID: 16156 远端评测题 4000ms 256MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>贪心2017二分Ad-hocJOISC/JOIST(日本)

[JOISC 2017] 门票安排 / Arranging Tickets

题目描述

在 JOI 共和国,有 NN 个车站,编号从 11NN。它们按顺时针方向排列在一条环形铁路上。

NN 种火车票,编号从 11NN。使用一张类型为 ii1iN11 \le i \le N-1)的票,一个人可以从车站 ii 前往车站 i+1i+1,或从车站 i+1i+1 前往车站 ii。使用一张类型为 NN 的票,一个人可以从车站 11 前往车站 NN,或从车站 NN 前往车站 11。我们只能购买包含每种类型票各一张的票包。

你正在 JOI 共和国的一家旅行社工作。你的任务是为客户安排车票。

今天,你有 MM 个订票请求。第 ii 个请求表示有 CiC_i 人希望从车站 AiA_i 前往车站 BiB_i。这些 CiC_i 人旅行时无需走相同的路线。

你希望知道,为了满足所有请求,你最少需要购买多少个票包。

任务

给定车站数量和请求信息,编写一个程序,计算你最少需要购买的票包数量。

输入格式

从标准输入读取以下数据:

  • 第一行包含两个由空格分隔的整数 NNMM。表示 JOI 共和国有 NN 个车站,今天你有 MM 个请求。
  • 接下来的 MM 行中,第 ii 行(1iM1 \le i \le M)包含三个由空格分隔的整数 AiA_iBiB_iCiC_i。表示第 ii 个请求是 CiC_i 人希望从车站 AiA_i 前往车站 BiB_i

输出格式

向标准输出写入一行。该行输出包含你最少需要购买的票包数量。

3 3
1 2 1
2 3 1
3 1 1
1
3 2
1 2 4
1 2 2
3
6 3
1 4 1
2 5 1
3 6 1
2

提示

样例 1 解释

若所有人都顺时针旅行,则每种票各需一张,因此你只需购买一个票包。

样例 2 解释

若人们按以下方式旅行,则每种票各需三张:

  • 在第一个请求中,三人顺时针旅行,一人逆时针旅行。
  • 在第二个请求中,两人逆时针旅行。

因此,购买三个票包已足够。我们输出 3,因为若仅购买两个票包,则无法完成所有旅行。

样例 3 解释

例如,你购买了两个票包,并按以下方式分配:

  • 将票 1、2、3 给希望从车站 1 前往车站 4 的人。
  • 将票 1、6、5 给希望从车站 2 前往车站 5 的人。
  • 将票 3、4、5 给希望从车站 3 前往车站 6 的人。

我们输出 2,因为若仅购买一个票包,则无法完成所有旅行。

约束条件

所有输入数据满足以下条件:

  • 3N2000003 \le N \le 200\,000
  • 1M1000001 \le M \le 100\,000
  • 1AiN1 \le A_i \le N1iM1 \le i \le M)。
  • 1BiN1 \le B_i \le N1iM1 \le i \le M)。
  • 1Ci10000000001 \le C_i \le 1\,000\,000\,0001iM1 \le i \le M)。
  • AiBiA_i \ne B_i1iM1 \le i \le M)。

子任务

共有 5 个子任务。每个子任务的得分及附加约束如下:

子任务 1 [10 分]

  • N20N \le 20
  • M20M \le 20
  • Ci=1C_i = 11iM1 \le i \le M)。

子任务 2 [35 分]

  • N300N \le 300
  • M300M \le 300
  • Ci=1C_i = 11iM1 \le i \le M)。

子任务 3 [20 分]

  • N3000N \le 3\,000
  • M3000M \le 3\,000
  • Ci=1C_i = 11iM1 \le i \le M)。

子任务 4 [20 分]

  • Ci=1C_i = 11iM1 \le i \le M)。

子任务 5 [15 分]

无额外约束。

翻译由 Qwen3-235B 完成