CF1394B.Boboniu Walks on Graph

提高+/省选-

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Boboniu has a directed graph with nn vertices and mm edges.

The out-degree of each vertex is at most kk.

Each edge has an integer weight between 11 and mm. 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)(c_1,c_2,\ldots,c_k). If he now stands on a vertex uu with out-degree ii, then he will go to the next vertex by the edge with the cic_i-th (1≤ci≤i)(1\le c_i\le i) smallest weight among all edges outgoing from uu.

Now Boboniu asks you to calculate the number of tuples (c1,c2,…,ck)(c_1,c_2,\ldots,c_k) such that

  • 1≤ci≤i1\le c_i\le i for all ii (1≤i≤k1\le i\le k).
  • Starting from any vertex uu, it is possible to go back to uu in finite time by walking on the graph under the described rules.

Boboniu 有一个包含 nn 个顶点和 mm 条边的有向图。

每个顶点的出度至多为 kk。

每条边具有一个介于 11 和 mm 之间的整数权重。任意两条边的权重互不相同。

Boboniu 喜欢按照某些特定规则在图上行走,这些规则由一个元组 (c1,c2,…,ck)(c_1,c_2,\ldots,c_k) 表示。若他当前位于出度为 ii 的顶点 uu 上,则他将沿着从 uu 出发的所有出边中权重第 cic_i 小(1≤ci≤i1\le c_i\le i)的那条边走向下一个顶点。

现在 Boboniu 要求你计算满足以下条件的元组 (c1,c2,…,ck)(c_1,c_2,\ldots,c_k) 的数量:

  • 对所有 ii(1≤i≤k1\le i\le k),均有 1≤ci≤i1\le c_i\le i;
  • 从任意顶点 uu 出发,按照上述规则在图上行走,均能在有限步内返回 uu。

输入格式

The first line contains three integers nn, mm and kk (2≤n≤2⋅1052\le n\le 2\cdot 10^5, 2≤m≤min⁡(2⋅105,n(n−1))2\le m\le \min(2\cdot 10^5,n(n-1) ), 1≤k≤91\le k\le 9).

Each of the next mm lines contains three integers uu, vv and ww (1≤u,v≤n,u≠v,1≤w≤m)(1\le u,v\le n,u\ne v,1\le w\le m), denoting an edge from uu to vv with weight ww. 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 kk and no two edges have equal weight.

第一行包含三个整数 nn、mm 和 kk(2≤n≤2⋅1052\le n\le 2\cdot 10^5,2≤m≤min⁡(2⋅105,n(n−1))2\le m\le \min(2\cdot 10^5,n(n-1) ),1≤k≤91\le k\le 9)。

接下来的 mm 行每行包含三个整数 uu、vv 和 ww(1≤u,v≤n1\le u,v\le n,u≠vu\ne v,1≤w≤m1\le w\le m),表示一条从 uu 到 vv 的有向边,其权重为 ww。保证图中不存在自环或重边,且每个顶点至少有一条从自身出发的边。

保证每个顶点的出度至多为 kk,且任意两条边的权重互不相等。

输出格式

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)(1,1,3) and (1,2,3)(1,2,3). The blue edges in the picture denote the cic_i-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)(1,2,2,2).

The out-degree of vertex uu means the number of edges outgoing from uu.

对于第一个样例,存在两个三元组:(1,1,3)(1,1,3) 和 (1,2,3)(1,2,3)。图中蓝色边表示每个顶点所选择的第 cic_i 小的边(即 Boboniu 选择经过的边)。

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

顶点 uu 的出度指从 uu 出发的有向边的数量。

输入解题思路,AI测评打分。不知道怎么写?

首页