CF1394B.Boboniu Walks on Graph

普及/提高-

通过率:0%

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 (1cii)(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

  • 1cii1\le c_i\le i for all ii ( 1ik1\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.

输入格式

The first line contains three integers nn , mm and kk ( 2n21052\le n\le 2\cdot 10^5 , 2mmin(2105,n(n1))2\le m\le \min(2\cdot 10^5,n(n-1) ) , 1k91\le k\le 9 ).

Each of the next mm lines contains three integers uu , vv and ww (1u,vn,uv,1wm)(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.

输出格式

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 .

首页