HDU 3746 Cyclic Nacklace KMP

2014-11-23 22:30:48 ? 作者: ? 浏览: 3

KMP算法——


AC代码:

 
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
using namespace std;  
  
typedef long long LL;  
const int N=200005;  
const LL II=100000000;  
const int INF=0x3f3f3f3f;  
const double PI=acos(-1.0);  
  
int next[N],len,nextval[N];  
char str[N];  
  
void getnext(char *p)  
{  
    int j=0,k=-1;  
    next[0]=-1;  
    while(j>T;  
    while(T--)  
    {  
        scanf("%s",str);  
        len=strlen(str);  
        getnext(str);  
        int min_repeat=len-next[len];  
        if(min_repeat==len)  
            printf("%d\n",len);  
        else if(len%min_repeat==0)  
            printf("0\n");  
        else  
            printf("%d\n",min_repeat-len%min_repeat);  
    }  
    return 0;  
}  

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

typedef long long LL;
const int N=200005;
const LL II=100000000;
const int INF=0x3f3f3f3f;
const double PI=acos(-1.0);

int next[N],len,nextval[N];
char str[N];

void getnext(char *p)
{
    int j=0,k=-1;
    next[0]=-1;
    while(j>T;
    while(T--)
    {
        scanf("%s",str);
        len=strlen(str);
        getnext(str);
        int min_repeat=len-next[len];
        if(min_repeat==len)
            printf("%d\n",len);
        else if(len%min_repeat==0)
            printf("0\n");
        else
            printf("%d\n",min_repeat-len%min_repeat);
    }
    return 0;
}


 

-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: