最小表示法, 求字典序最小

int main()
{
    int t;
    scanf("%d",&t);
    while(t--){
        int n;
        scanf("%d",&n);
        scanf("%s",a);
        strcpy(b,a);
        strcat(a,b);
        int i,j,k;
        for(i=0,j=1,k=0;j<=n && iif(a[i+k]==a[j+k])
                k++;
            else{
                //printf("%d %d %d\n",i,j,k);
                if(a[i+k] > a[j+k]) i+=k+1;
                else if(a[i+k] < a[j+k]) j+=k+1;
                if(i==j) j++;
                k = 0;
            }
            //printf("%d %d %d\n",i,j,k);
        }
        printf("%d\n",i);
    }
}

你可能感兴趣的:(板子)