QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100 Hackable ✓

#10878. 回合战略

统计

$V$ 君和 $I$ 君在玩一个惊险刺激的游戏。

游戏在一个圆环上进行,圆环上有 $2n$ 个情报站,它们按顺时针依次被标记为 $0,1\dots {2n-1}$,其中编号为奇数的情报站由 $V$ 君控制,其他情报站由 $I$君控制。

这个游戏以情报传递作为背景。$I$ 君已经了解到, $V$ 君在他所控制的情报站之间连接了 $m$ 条通讯线,其中第 $i$ 个通讯线可以看作是连接 $u_i,v_i$ 两点的直线段,它的通讯强度为 $s_i$。$I$ 君希望破坏这些通讯线,为此他可以发射若干束干扰光波。每一束干扰光波需要指定 $I$ 君的两个不同的情报站 $x,y$ 作为发射源和接受源,同时此光波需要指定一个干扰强度 $w$。这样,我们就可以把干扰光波看作一条连接了 $x,y$ 两点、带有权值 $w$ 的直线段。

对于一条通讯强度为 $s$ 的通讯线,设和它相交的干扰光波的集合为 $T$。那么我们认为这个通讯线被破坏,当且仅当 $\sum_{j\in T} w_j\ge s$。

$I$ 君希望破坏 $V$ 君的所有通讯线,然而发射干扰光波是一个很♂累的事情,所以他希望能发射一些合适的干扰光波,使得这些光波的干扰强度之和尽可能小。自然,这个问题将由他的军事参谋——你来负责处理,请你帮 $I$ 君计算出干扰强度之和的最小值,同时给出一种可行的方案。

输入格式

从标准输入读入数据。

第一行两个数 $n,m$,意义如题目描述。

接下来 $m$ 行,第 $i$ 行有三个整数 $u_i,v_i, s_i$,表示第 $i$ 条通讯线连接了 $u_i,v_i$ 两个情报站,通讯强度为 $s_i$,保证 $0\le u_i,v_i < 2n, 1\le s_i\le 10^3$ ,且 $u_i,v_i$ 均为奇数。

输出格式

输出到标准输出。

第一行请输出一个整数 $A$,表示干扰强度之和的最小值。

接下来一行输出一个 $C$,表示你发射的干扰光波个数。

设你的方案中所发射的光波为 $\{(x_i,y_i, w_i)\}$ ,接下来 $C$ 行,每行输出三个空格隔开的整数。其中第 $i$ 行的三个数分别表示 $x_i,y_i,w_i$。

你需要保证以下几点成立,我们才能识别你构造的方案:

  • $0\le C\le 10^5$ .

  • $\forall 1\le i\le C$ :

    • $0\le x_i, y_i\le 2n, w_i>0$ .
    • $x_i,y_i$ 均为偶数且 $x_i \ne y_i$ .
    • $\sum_{i} w_i \le A$ .

请特别注意:如果你的构造方案不被识别,我们不保证你能获得测试点的部分分

样例

输入

5 4
1 7 1
9 7 1
3 9 1
5 3 1

输出

2
2
2 8 1
4 6 1

解释

如下图,因为所有通讯强度和干扰强度均为 $1$,故在图中略去。这里绿色点表示$V$君控制的情报站,红色点表示 $I$君控制的情报站,实线表示通讯线,虚线表示干扰光波。注意可行方案不是唯一的

img

子任务

  • 对于 25% 的数据,满足 $N\le 100, M\le 400$
  • 对于另外 25% 的数据,满足 $N\le 500, M\le 10^3$,其中有 5% 的数据还满足 $s_i=1$
  • 对于另外 25% 的数据,满足 $N\le 500, M\le 10^4$,其中有 10% 的数据还满足 $s_i=1$
  • 对于另外 25% 的数据,满足 $N\le 2000, M\le 4000$, 其中有 10% 的数据还满足 $s_i=1$

在提交代码后将为你评测预测试数据并返回结果。本题的预测试数据包含 $20$ 个测试点,每个测试点和对应的最终评测测试点的 $N,M,s_i$ 的限制相同。

注意:预测试数据的评测结果与最终评测结果没有关系

评分方式

对每组数据,如果你的程序正确地计算了 $A$ (即干扰强度之和的最小值),得 $3$ 分。若在此基础上给出了一个格式正确、满足要求的构造方案,可以获得 $5$ 分。

About Issues

We understand that our problem archive is not perfect. If you find any issues with the problem, including the statement, scoring configuration, time/memory limits, test cases, etc.

You may use this form to submit an issue regarding the problem. A problem moderator will review your issue and proceed it properly.

STOP! Before you submit an issue, please READ the following guidelines:

  1. This is not a place to publish a discussion, editorial, or requests to debug your code. Your issue will only be visible by you and problem moderators. Other users will not be able to view or reply your issues.
  2. Do not submit duplicated issues. If you have already submitted one, please wait for an moderator to review it. Submitting multiple issues will not speed up the review process and might cause your account to be banned.
  3. Issues must be filed in English or Chinese only.
  4. Be sure your issue is related to this problem. If you need to submit an issue regarding another problem, contest, category, etc., you should submit it to the corresponding page.

Active Issues 0

No issues in this category.

Closed/Resolved Issues 0

No issues in this category.