天天看点

boj 1333 想法十分简单。。不多说了。。复杂的我不会。。这个题给的不太完善感觉

烦人的交通Submit: 433   Accepted:256Time Limit: 1000MS  Memory Limit: 1000K

Description

奥运会来了,北京的交通实在让人担忧,特别是交错复杂的立交桥 。真是让人眼花缭乱,所以聪明的你,要为交通部规划一种方案来简化这烦人的立交桥。

简化方案是,在任意两个地方都能通过立交桥到达的前提下,尽量减少桥的数量。

假设每条立交桥连接了两个不同的地方,并且立交桥是无向的。(注意:由于现有的立交桥是在太混乱,两个地方甚至有多条立交桥可到达 ――!) 

Input

以下会给出1<=N<=1000个地方,0<=M<=500000000条立交桥,后面有m行,每行两个数a , b , 表示a , b两点相连(1 <= a , b <= N)。

你可以确定,给出的桥可以使任意两个地方都能通过立交桥到达。

Output

你需要输出需要删除多余的立交桥的数量。

Sample Input

5 7

4 5

1 2

1 3

1 4

2 3

2 4

3 4

Sample Output

3

Source

Wangkun

#include<iostream>

using namespace std;

int main()

{

  int i,b,e,count=0,n,m;

  int a[1001];                   //A记录已经出现过的数字 

  for(i=0;i<1001;i++)

   a[i]=0;

  while(cin>>n>>m)

  {

 for(i=0;i<m;i++)

 {

 cin>>b>>e;

    if(a[b]==0)

 {

   a[b]=1;

   count++;

 }

 if(a[e]==0)

 {

   a[e]=1;

   count++;

 }

 }

 if(count<=n)    //没有貌似也对~

  cout<<"0"<<endl;

 else

     cout<<m-n+1<<endl;

  }

  return 0;

}

简单的:

#include<iostream>

using namespace std;

int main()

{

  int i,b,e,count=0,n,m;

  while(cin>>n>>m)

  {

 for(i=0;i<m;i++)

 {

   cin>>b>>e;

 }

    cout<<m-n+1<<endl;

  }

  return 0;

}

这也能AC。。。。

继续阅读