B. Mr. Kitayuta's Colorful Graph( Codeforces Round #286 (Div. 二))
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.
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.
For each query, print the answer in a separate line.
4 5 1 2 1 1 2 2 2 3 1 2 3 3 2 4 3 3 1 2 3 4 1 4
2 1 0
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
1 1 1 1 2
Let's consider the first sample.
- 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.
#include<iostream> #include<algorithm> #include<stdio.h> #include<string.h> #include<stdlib.h> using namespace std; int bin[210][210]; int n,m; void init() { for(int i=1;i<201;i++) { for(int j=1;j<201;j++) { bin[i][j] = j; } } } int findx(int z,int x) { while(bin[z][x]!=x) { x = bin[z][x]; } int k = x,j; while(k!=x) { j = bin[z][k]; bin[z][k] = x; k = j; } return x; } void merrg(int z,int x,int y) { int fx = findx(z,x); int fy = findx(z,y); if(fx!=fy) { bin[z][fx] = fy; } } int main() { while(scanf("%d%d",&n,&m)!=EOF) { init(); int x,y,z; for(int i=0;i<m;i++) { scanf("%d%d%d",&x,&y,&z); merrg(z,x,y); } int k; int a,b; scanf("%d",&k); while(k--) { int cnt = 0; scanf("%d%d",&a,&b); for(int i=1;i<=m;i++) { int aa = findx(i,a); int bb = findx(i,b); if(aa == bb) { cnt++; } } printf("%d\n",cnt); } } return 0; }
#include<iostream> #include<algorithm> #include<stdio.h> #include<string.h> #include<stdlib.h> using namespace std; int map[101][101][101]; int n,m; void init() { for(int i=1;i<=m;i++) { for(int j=1;j<=n;j++) { for(int k=1;k<=n;k++) { map[i][j][k] = 0; } } } } void flordy() { for(int i=1;i<=m;i++) { for(int j=1;j<=n;j++) { for(int k=1;k<=n;k++) { for(int p=1;p<=n;p++) { //printf("map[%d][%d][%d] = %d map[%d][%d][%d] = %d\n",i,k,j,map[i][k][j],i,j,p,map[i][j][p]); if(map[i][k][j] == 1 && map[i][j][p] == 1) { map[i][k][p] = 1; map[i][p][k] = 1; } } } } } } int main() { while(scanf("%d%d",&n,&m)!=EOF) { init(); int x,y,z; for(int i=0;i<m;i++) { scanf("%d%d%d",&x,&y,&z); map[z][x][y] = 1; map[z][y][x] = 1; } flordy(); int t; int a,b; scanf("%d",&t); while(t--) { int cnt = 0; scanf("%d%d",&a,&b); for(int i=1;i<=m;i++) { if(map[i][a][b] == 1) { cnt++; } } printf("%d\n",cnt); } } return 0; }
相关推荐
- Codeforces Round #286 (Div. 一) B. Mr. Kitayuta's Technology (强连通分量)
- Codeforces Round #286 (Div. 二) B. Mr. Kitayuta's Colorful Graph +foyd算法的应用
- CF #286 div 二 B. Mr. Kitayuta's Colorful Graph(dfs)
- Codeforces Round #286 (Div. 二) C. Mr. Kitayuta, the Treasure Hunter+dp+优化
- Codeforces Round #286 (Div. 二) C题 Mr. Kitayuta, the Treasure Hunter (DFS+记忆化DP)
- Codeforces Round #286 (Div. 二) D. Mr. Kitayuta's Technology 强连通分量
- Codeforces Round #286 (Div. 二) C. Mr. Kitayuta, the Treasure Hunter
- B. Mr. Kitayuta's Colorful Graph( Codeforces Round #286 (Div. 二))
- Codeforces Round #286 (Div. 1) D. Mr. Kitayuta's Colorful Graph
- Codeforces Round #286 (Div. 1) B. Mr. Kitayuta's Technology (强连通分量)
- sql server中 把字符串转化为日期 的函数是什么解决方案
- 怎么将这样的字符串转换为时间戳 "20110203113546"