最小表示法

int work(int m,int p[])
{
    int i,j,l;
    i=0;j=1;
    while(i<m&&j<m)
    {
        for(l=0;l<m;l++) if(p[(i+l)%m]!=p[(j+l)%m]) break;
        if(l>m) break;
        if(p[(i+l)%m]>p[(j+l)%m]) i=i+l+1;
        else j=j+l+1;
        if(i==j) j=i+1;
    }
    return min(i,j);
}

 

posted on 2016-11-04 20:57  恶devil魔  阅读(147)  评论(0编辑  收藏  举报

导航