24h購物| | PChome| 登入
2009-05-10 16:08:47| 人氣583| 回應0 | 上一篇 | 下一篇

2006 NOIP 普及組 NOIP2006 3.Jam的計數法

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

作法:(1)利用void叫出所有組合(2)還沒想到

想法:先說 我的做法沒有很好
    當組合剛好到的時候 進行輸出 當超過5個時就RETURN

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

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int input[27]={0};
int s,t,w;
int way[27]={0},time=0,flag=0;
void make (int now,int num)
{
 int a,b;
 for(a=num;a<=t;a++)
  {
   way[now]=a;
   if(flag==1&&now==w-1&&time<5)
    {
     time++;
     for(b=0;b<w;b++)
      printf("%c",way[b]+'a'-1);
      printf("\n");
    }
   if(flag==0&&now==w-1)
    {
     for(b=0;b<w;b++)
      if(way[b]!=input[b]) break;
     if(b==w) flag=1; 
    }
   if(now+1<=w-1)
     make(now+1,a+1);
   if(time==5) return;
  }
}
main()
{
 char x[27]={0};
 while(scanf("%d %d %d",&s,&t,&w)==3)
  {
   scanf("%s",x);
   time=0;
   flag=0;
   int a,b,n=strlen(x);
   for(a=0;a<n;a++)
     input[a]=x[a]-'a'+1;
    make(0,s);
  }
 return 0;
}

台長: 來源不明
人氣(583) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: 資訊競賽 |
此分類下一篇:2006 NOIP 普及組 NOIP2006 4.數列
此分類上一篇:96高市資訊學科能力競賽 第六題:吸血鬼數(Vampire Number)

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