codeforces 505B Mr. Kitayuta's Colorful Graph(水题)
2015-03-14 22:57
197 查看
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud
Mr. Kitayuta's Colorful Graph
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, he gives you two integers — ui and vi.
Find the number of the colors that satisfy the following condition: the edges of that color connect vertex ui and vertex vi directly or indirectly.
Input
The first line of the input contains space-separated two integers — n and m (2 ≤ n ≤ 100, 1 ≤ m ≤ 100), denoting the number 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 that there can be multiple edges between two vertices. However, there are no multiple edges of the same color between two vertices, that is, if i ≠ j, (ai, bi, ci) ≠ (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
Output
Input
Output
Note
Let's consider the first sample.
代码君
Mr. Kitayuta's Colorful Graph
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, he gives you two integers — ui and vi.
Find the number of the colors that satisfy the following condition: the edges of that color connect vertex ui and vertex vi directly or indirectly.
Input
The first line of the input contains space-separated two integers — n and m (2 ≤ n ≤ 100, 1 ≤ m ≤ 100), denoting the number 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 that there can be multiple edges between two vertices. However, there are no multiple edges of the same color between two vertices, that is, if i ≠ j, (ai, bi, ci) ≠ (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 first sample.
#include <iostream> using namespace std; #define MAXN 110 int pa[110][110],ra[110][110]; void init() { for(int i=0;i<MAXN;i++) { for(int j=0;j<MAXN;j++){ pa[i][j]=j; ra[i][j]=0; } } } int find(int x,int c){ if(pa[c][x]!=x)pa[c][x]=find(pa[c][x],c); return pa[c][x]; } int unite(int x,int y,int c){ x=find(x,c); y=find(y,c); if(x==y)return 0; if(ra[c][x]<ra[c][y]) { pa[c][x]=y; }else{ pa[c][y]=x; if(ra[c][x]==ra[c][y])ra[c][x]++; } return 1; } bool same(int x,int y,int c){ return find(x,c)==find(y,c); } int main() { ios::sync_with_stdio(false); int n,m; init(); cin>>n>>m; int u,v,c; for(int i=0;i<m;i++){ cin>>u>>v>>c; u--,v--,c--; unite(u,v,c); } int q; cin>>q; for(int i=0;i<q;i++){ cin>>u>>v; u--;v--; int ans=0; for(int i=0;i<m;i++) { if(same(u,v,i))ans++; } cout<<ans<<endl; } return 0; }
代码君
相关文章推荐
- CodeForces 347A Difference Row (水题)
- codeforces水题100道 第九题 Codeforces Beta Round #63 (Div. 2) Young Physicist (math)
- codeforces水题100道 第十九题 Codeforces Round #109 (Div. 2) A. I_love_%username% (brute force)
- Codeforces 633A Ebony and Ivory 【水题】
- Codeforces 634A Island Puzzle 【水题】
- 【打CF,学算法——一星级】CodeForces 701A Cards(水题)
- CodeForces 288A Polo the Penguin and Strings (水题)
- Codeforces 868A Bark to Unlock 水题
- Codeforces 454B Little Pony and Sort by Shift(水题)
- B - Pasha Maximizes -水题-CodeForces 435B
- codeforces 652A A. Gabriel and Caterpillar(水题)
- CodeForces 300B Coach(并查集 + 水题)
- CodeForces 3A Shortest path of the king(水题)
- CodeForces - 682B 题意水题
- codeforces 617B 水题~
- CodeForces水题
- Codeforces 554A Kyoya and Photobooks 【水题】
- LightOJ 1338 && 1387 - Setu && LightOJ 1433 && CodeForces 246B(水题)
- Codeforces 596A Wilbur and Swimming Pool 【水题】
- Anya and Ghosts - CodeForces 508 C 水题