CF1394B.Boboniu Walks on Graph
提高+/省选-
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Boboniu has a directed graph with n vertices and m edges.
The out-degree of each vertex is at most k.
Each edge has an integer weight between 1 and m. No two edges have equal weights.
Boboniu likes to walk on the graph with some specific rules, which is represented by a tuple (c1,c2,…,ck). If he now stands on a vertex u with out-degree i, then he will go to the next vertex by the edge with the ci-th (1≤ci≤i) smallest weight among all edges outgoing from u.
Now Boboniu asks you to calculate the number of tuples (c1,c2,…,ck) such that
- 1≤ci≤i for all i (1≤i≤k).
- Starting from any vertex u, it is possible to go back to u in finite time by walking on the graph under the described rules.
Boboniu 有一个包含 n 个顶点和 m 条边的有向图。
每个顶点的出度至多为 k。
每条边具有一个介于 1 和 m 之间的整数权重。任意两条边的权重互不相同。
Boboniu 喜欢按照某些特定规则在图上行走,这些规则由一个元组 (c1,c2,…,ck) 表示。若他当前位于出度为 i 的顶点 u 上,则他将沿着从 u 出发的所有出边中权重第 ci 小(1≤ci≤i)的那条边走向下一个顶点。
现在 Boboniu 要求你计算满足以下条件的元组 (c1,c2,…,ck) 的数量:
- 对所有 i(1≤i≤k),均有 1≤ci≤i;
- 从任意顶点 u 出发,按照上述规则在图上行走,均能在有限步内返回 u。
输入格式
The first line contains three integers n, m and k (2≤n≤2⋅105, 2≤m≤min(2⋅105,n(n−1)), 1≤k≤9).
Each of the next m lines contains three integers u, v and w (1≤u,v≤n,u=v,1≤w≤m), denoting an edge from u to v with weight w. It is guaranteed that there are no self-loops or multiple edges and each vertex has at least one edge starting from itself.
It is guaranteed that the out-degree of each vertex is at most k and no two edges have equal weight.
第一行包含三个整数 n、m 和 k(2≤n≤2⋅105,2≤m≤min(2⋅105,n(n−1)),1≤k≤9)。
接下来的 m 行每行包含三个整数 u、v 和 w(1≤u,v≤n,u=v,1≤w≤m),表示一条从 u 到 v 的有向边,其权重为 w。保证图中不存在自环或重边,且每个顶点至少有一条从自身出发的边。
保证每个顶点的出度至多为 k,且任意两条边的权重互不相等。
输出格式
Print one integer: the number of tuples.
输出一个整数:满足条件的元组个数。
输入输出样例
输入#1
4 6 3 4 2 1 1 2 2 2 4 3 4 1 4 4 3 5 3 1 6
输出#1
2
输入#2
5 5 1 1 4 1 5 1 2 2 5 3 4 3 4 3 2 5
输出#2
1
输入#3
6 13 4 3 5 1 2 5 2 6 3 3 1 4 4 2 6 5 5 3 6 4 1 7 4 3 8 5 2 9 4 2 10 2 1 11 6 1 12 4 6 13
输出#3
1
说明/提示
For the first example, there are two tuples: (1,1,3) and (1,2,3). The blue edges in the picture denote the ci-th smallest edges for each vertex, which Boboniu chooses to go through.

For the third example, there's only one tuple: (1,2,2,2).

The out-degree of vertex u means the number of edges outgoing from u.
对于第一个样例,存在两个三元组:(1,1,3) 和 (1,2,3)。图中蓝色边表示每个顶点所选择的第 ci 小的边(即 Boboniu 选择经过的边)。

对于第三个样例,仅存在一个四元组:(1,2,2,2)。

顶点 u 的出度指从 u 出发的有向边的数量。
输入解题思路,AI测评打分。不知道怎么写?