ACM448
http://acm.nyist.net/JudgeOnline/problem.php?pid=448
分析:乍一看去还以为是一个实现排序,然后找出前几位的题。然而,并不是。需要用深度优先搜索实现....
最大数的规律:最高位一定在0~len-n之间,假设为k,那么次高位一定在k~len-n+1之间,依次类推...
深度优先搜索实现:
1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5 int i,j,l,k;int t,n; 6 char s[103],max; 7 scanf("%d",&t); 8 while(t--) 9 { 10 scanf("%s%d",s,&n); 11 l=strlen(s); 12 max='0'; 13 for(i=l-n,k=0; i>0; i--) 14 { 15 for(j=k;j<=l-i;j++) 16 if(s[j]>max) 17 { 18 max=s[j]; 19 k=j+1; 20 } 21 printf("%c",max); 22 max='0'; 23 } 24 printf("\n"); 25 } 26 return 0; 27 }