24h購物| | PChome| 登入
2009-11-03 20:56:10| 人氣386| 回應0 | 上一篇 | 下一篇

垃圾題嗎?

推薦 0 收藏 0 轉貼0 訂閱站台

作法 : 轉進制

之所以出長度4

是由於 26^4-1

只要把字串當作是一個26進制數 就可以當作是一個數字囉

再利用陣列++做標記唄

/***********************************************************/

#include<stdio.h>              
#include<stdlib.h>  
short make[500000];
main()  
{  
 int a,N;
 char s[6];
 while(scanf("%d",&N)==1)
     {
        int queue[N],top=0;
        getchar();
         while(N--)
         {
           s[0]=getchar();
           s[1]=getchar();
           s[2]=getchar();
           s[3]=getchar();
           getchar();
           int t=(s[0]-'a'+1)+(s[1]-'a'+1)*26+(s[2]-'a'+1)*676+(s[3]-'a'+1)*17576;
           if(make[t]==0)
              printf("New! %d\n",++top),make[t]=top,queue[top]=t;
           else
             printf("Old! %d\n",make[t]);
         }
         for(a=1;a<=top;a++)
             make[queue[a]]=0;
     }
 return 0;
}

/*
5
einei
isisi
zweix
dreix
zweix
*/

台長: 來源不明
人氣(386) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: ZeroJudge 基礎+原創題庫 |
此分類下一篇:垃圾題回來了
此分類上一篇:To Love (TL)

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文