查看文章 |
noip 普及组 2005 count
2008-08-28 09:42
生成组合数的模板 //start C++语言: 临时自用代码@代码发芽网
#include <stdio.h>
#include <string.h> const int SIZE = 50; char mask[SIZE]; char str[SIZE]; int s,t,w; bool next (void) { for (int i=w-1;i>=0;i--) if (str[i]!=mask[i]) { str[i]++; for (int j=i+1;j<w;j++) str[j]=str[j-1]+1; return true; } return false; }; int main() { scanf ("%d %d %d",&s,&t,&w); scanf ("%s",str); // printf("\n%s\n",str); int i; int j=t; for (i=w-1;i>=0;i--) { mask[i]=j+'a'-1; j--; } mask[w]='\0'; //printf("mask : %s \n",mask); for (i=0;i<5 && next() ;i++) printf("%s\n",str); //while (1); return 0; } //end |
最近读者: