小希的迷宮 hdu 1272

來源:互聯網
上載者:User

http://acm.hdu.edu.cn/showproblem.php?pid=1272

#include<iostream>// 好奇怪,為何我開始寫的不行??
#include<cstdio> // 1 要求無迴路 2 只有一棵樹
#include<algorithm>
using namespace std;
const int MAX=100001;
int set[MAX];
bool mark[MAX];

int find(int x)
{
 int r = x;
 while(set[r] != r) r = set[r];
 return r;
}

void mergy(int p, int q)
{
 set[max(p, q)] = min(p,q);
// mark[min(p,q)] = true;
// if(p > q)
//  set[p] = q;
// else
//  set[q] = p;

int main()
{
 int a, b, max1, min1, flag,i;
 
 
 while(scanf("%d%d",&a, &b)!=EOF)
 {
  if(a == -1 && b == -1)
  {
   //flag = 1;
   break;
  }
    if(a == 0 && b == 0)
  {
   //flag = 2;
   printf("Yes/n");
   continue;
  }
  for( i = 0; i < MAX; i++)
  {
   set[i] = i;
   mark[i] = false;
  }
  flag = 0;
  max1 = -222;
  min1 = 1000000;
  //max1 = max(max1, max(a, b));//為何這樣的語句就是不行啊??
  // min1 = min(min1, max(a, b));
  if(a > max1) max1 = a;
  if(b > max1) max1 = b;
  if(a < min1) min1 = a;
  if(b < min1) min1 = b;
 // int t = max (a , b);
 // max1 = max(max1, t);
 // int tt =min(a, b);
 // min1 = max(max1 ,tt);
 
  mark[a] = true;
  mark[b] = true;
  a = find(a);
  b = find(b);
  mergy(a,b);
  while(scanf("%d%d",&a, &b)!=EOF)
  {
   if(a == 0 && b == 0)
    break;
   // max1 = max(max1, max(a, b));
   // min1 = min(min1, max(a, b));
   if(a > max1) max1 = a;
   if(b > max1) max1 = b;
   if(a < min1) min1 = a;
   if(b < min1) min1 = b;
  //int t = max (a , b);
 // max1 = max(max1, t);
  //int tt =min(a, b);
 // min1 = max(max1 ,tt);
 
    mark[a] = true;
    mark[b] = true;
    a = find(a);
    b = find(b);
   if(a == b)
   {
    flag = -1;
   }
   else
   {
    mergy(a,b);
   }
  }
  if(flag == -1)
   {
    printf("No/n");
   }
  else
   {
    for(i = min1; i<= max1; i++)
     if(set[i] == i && mark[i])
      flag++;
    if(flag == 1)
     printf("Yes/n");
    else
     printf("No/n");
   }
 }
  
  
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.