程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> hdu 2094 (水,直接C方法)

hdu 2094 (水,直接C方法)

編輯:C++入門知識

 


/*

 


本來要用並查集的,感覺是並查集的題,但是無限WA。。。。。

後來看網上才發現,如此的水,,,,

只要沒有輸過的人數==1,就可以輸出Yes了,否則No


2013-04-23

 


*/

 

 

[cpp]
#include"stdio.h"  
#include"string.h"  
int main() 

    int n; 
    int ans; 
    int i,j,k; 
    int count[1001]; 
    char map[1001][20]; 
    char s1[1001],s2[20]; 
    while(scanf("%d",&n)!=-1) 
    { 
        if(!n)break; 
         
        memset(count,0,sizeof(count)); 
        k=0; 
        for(i=0;i<n;i++) 
        { 
            scanf("%s%s",s1,s2); 
            for(j=0;j<k;j++) 
                if(strcmp(s1,map[j])==0)break; 
 
            if(j==k) 
            { 
                strcpy(map[k],s1); 
                k++; 
            } 
 
            for(j=0;j<k;j++) 
                if(strcmp(s2,map[j])==0)break; 
 
            if(j==k) 
            { 
                strcpy(map[k],s2); 
                k++; 
            } 
 
            count[j]=1; 
        } 
         
        ans=0; 
        for(i=0;i<k;i++) 
            if(count[i]==0)ans++; 
 
        if(ans==1)printf("Yes\n"); 
        else printf("No\n"); 
    } 
    return 0; 

#include"stdio.h"
#include"string.h"
int main()
{
 int n;
 int ans;
 int i,j,k;
 int count[1001];
 char map[1001][20];
 char s1[1001],s2[20];
 while(scanf("%d",&n)!=-1)
 {
  if(!n)break;
  
  memset(count,0,sizeof(count));
  k=0;
  for(i=0;i<n;i++)
  {
   scanf("%s%s",s1,s2);
   for(j=0;j<k;j++)
    if(strcmp(s1,map[j])==0)break;

   if(j==k)
   {
    strcpy(map[k],s1);
    k++;
   }

   for(j=0;j<k;j++)
    if(strcmp(s2,map[j])==0)break;

   if(j==k)
   {
    strcpy(map[k],s2);
    k++;
   }

   count[j]=1;
  }
  
  ans=0;
  for(i=0;i<k;i++)
   if(count[i]==0)ans++;

  if(ans==1)printf("Yes\n");
  else printf("No\n");
 }
 return 0;
}

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved