zoukankan      html  css  js  c++  java
  • poj1509(环形字符串求最小字典序)

    题意:给你一串字符串,但是这串字符串是环形的,让你找个位置切开,使得它的字典序最小.......

    思路:典型的最小表示法.......

    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    using namespace std;
    char str[20000];
    int work(int m) 
    { 
        int i,j,l; 
        i=0; j=1; 
        while(i<m && j<m) 
        { 
            for(l=0;l<m;l++)  
                if(str[(i+l)%m]!=str[(j+l)%m]) break; 
            if(l>m) break; 
            if(str[(i+l)%m] > str[(j+l)%m]) 
                i=i+l+1; 
            else
                j=j+l+1; 
            if(i==j) j=i+1; 
        } 
        if(i<j) return i; 
        return j; 
    } 
    int main()
    {
    	int text;
    	scanf("%d",&text);
    	while(text--)
    	{
    		scanf("%s",str);
    		printf("%d
    ",work(strlen(str))+1);
    	}
    	return 0;
    }
    
  • 相关阅读:
    Kattis
    Kattis
    Kattis
    Kattis -Backspace
    Kattis
    Kattis
    Kattis
    Hihocoder1061-Beautiful String
    Hihocoder1350-Binary Watch
    Hihocoder1458-Parentheses Matching(stack,vector)
  • 原文地址:https://www.cnblogs.com/ziyi--caolu/p/3245169.html
Copyright © 2011-2022 走看看