Application of Codeforces Round #286 (Div. 2) B. Kitayuta ' s colorful Graph +foyd algorithm __ Shortest circuit

Source: Internet
Author: User
B. Mr. Kitayuta ' s colorful Graph time limit/test 1 second memory limit per test 256 megabytes input standard input out Put standard output

Mr. Kitayuta has just bought an undirected graph consisting of n vertices and m edges. The vertices of the graph are numbered from 1 to N. Each edge, namely edge I, has a color CI, connecting vertex ai and bi.

Mr Kitayuta wants you to process the following Q queries.

In the i-th query, him gives you two Integers-ui and VI.

Find the number of the colors this satisfy the following condition:the edges of that color connect vertex UI and Vertex v I directly or indirectly. Input

The "I" of the input contains space-separated two integers-n and M (2≤n≤100, 1≤m≤100), denoting the Numbe R of the vertices and the number of the edges, respectively.

The next m lines contain space-separated three Integers-ai, Bi (1≤ai < bi≤n) and CI (1≤ci≤m). Note So there can be multiple edges between two vertices. However, there are no multiple edges of the same color between two, which is, if vertices, (AI, Bi, ci) i≠j (AJ, BJ, CJ ).

The next line contains a integer-q (1≤q≤100), denoting the number of the queries.

Then follows q lines, containing space-separated two Integers-ui and VI (1≤ui, vi≤n). It is guaranteed that ui≠vi. Output

For each query, print the answer in a separate line. Sample Test (s) input

4 5 1 2 1 1 2 2 2 3 1 2 3 3 2 4 3 3 1 2 3 4 1-
4
Output
2
1
0
Input
5 7 1 5 1 2 5 1 3 5 1 4 5 1 1 2 2 2 3 2 3 4 2 5 1 5 5 1 2 5-
1 5
1 4
Output
1
1
1
1
2
Note

Let ' s consider the "the". The figure above shows. Vertex 1 and Vertex 2 are connected by color 1 and 2. Vertex 3 and Vertex 4 are connected by Color 3.

Vertex 1 and Vertex 4 are not connected by any single color. Solution: The problem is to create a diagram, there are many different colors of the edge, each query two sides of the number of different colors of the path. This associative Floyd algorithm allows you to enumerate the color of the edges, find the shortest path for each color, and then count the number of short circuits in different colors. Code

<pre name= "code" class= "CPP" > #include <iostream> #include <cstdio> #include <cstring> using
namespace Std;
int mat[102][102][102];
    int main () {int n,m;
        while (~SCANF ("%d%d", &n,&m)) {memset (mat,0,sizeof (Mat));
            for (int i=1; i<=m; i++) {int a,b,c;
            scanf ("%d%d%d", &a,&b,&c);
            Mat[a][b][c]=1;
        Mat[b][a][c]=1;
                for (int c=1;c<=m;c++) {for (int k=1;k<=n;k++) {for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) {if (Mat[i][k][c]&&mat[k][j][c]) {Mat I [j]
                        [C]=1;
                    Mat[j][i][c]=1;
        {}}} int q;
        scanf ("%d", &q);
            for (int i=0;i<q;i++) {int a,b;
            int sum=0;
            scanf ("%d%d", &a,&b); for (int i=1;i<=m;i++) {Sum+=mat[a][b][i];
        printf ("%d\n", sum);
} return 0; }


Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.