poj2185 Milking Grid

来源:互联网 发布:calendar.js api 编辑:程序博客网 时间:2024/05/01 06:38

原来AC的代码错的...

#include <iostream>#include<cstring>using namespace std;char p[ 10005][80];short next[80],next1[10005];int r,c;void  getNext(char *p,int len){    int j,k;    next[0]=-1;    j=0;    k=-1;    while(j<len){        if(k==-1||p[k]==p[j]){            k++;            j++;            next[j]=k;}        else            k=next[k];}}void  getNextb(int len){    int j,k;    next1[0]=-1;    j=0;    k=-1;    while(j<len){        if(k==-1||strcmp(p[k],p[j])==0){            k++;            j++;            next1[j]=k;}        else            k=next1[k];}}int main(){    int i,len,wide=0;    //short num[10005][80];    //char s[80];    short num[10005];    scanf("%d%d",&r,&c);    for(i=0;i<r;i++)    {        scanf("%s",p[i]);        len=c;        getNext(p[i],len);        /*num[i][0]=len-next[len];//zuixiaoxunhuanjie        memcpy(s,p[i]+next[len],num[i][0]+1);        len1=strlen(s);        getNext(s,len1);        int tem=len1-next[len1];        int k=0;        for(j=num[i][0];j<=len;j+=tem)        {            num[i][k++]=j;        }*/        num[i]=len-next[len];        //cout<<num[i]<<endl;        if(num[i]>wide)        wide=num[i];    }    getNextb(r);    int h=r-next1[r];    //cout<<r<<" "<<h<<endl;    cout<<h*wide<<endl;    return 0;}


原创粉丝点击