题目描述
给出一个无向无权图,有n(1<= n <= 1000)个点,m(1<= m <= 1000000)条边。点的编号从1到n。m条边中可能会有重复的边,问去掉重复的边之后还剩下多少条边。
输入
多组输入。每组输入的第一行包括两个整数n,m。接下来的m行,每行包含两个整数u,v,表示两点之间有一条边。
输出
输出一个整数代表答案。
示例输入
2 3 1 2 1 2 2 1 3 3 1 1 1 3 3 2 2 2 1 1 1 1
示例输出
1 3
1
水题。。
- #include <bits/stdc++.h>
- using namespace std;
- int p[1002][1002];
- int main()
- {
- int i,k,l,j,n,m;
- ios::sync_with_stdio(false);
- while(cin>>n>>m)
- {
- memset(p,0,sizeof(p));
- int a,b,sum;
- sum=m;
- for(i=0;i<m;i++)
- {
- cin>>a>>b;
- if(p[a][b]==0)
- p[a][b]=p[b][a]=1;
- else //重复的减去
- sum--;
- }
- cout<<sum<<endl;
- }
- return 0;
- }