国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

hihocoder1032:(manacher)

2019-11-08 03:05:40
字體:
來源:轉載
供稿:網友

題目:http://hihocoder.com/PRoblemset/problem/1032

題目分析:manacher模板,RE了好多次。一開始是數組忘了開兩倍長度,接下來又是多算了最后一位的答案導致數組越界(即’$’),重點是忘了寫“if( i+temp[i]>p+temp[p] ) p=i;”這句如此重要的話……輸出答案的時候要注意分類討論一下。

CODE:

#include<iostream>#include<string>#include<cstring>#include<cmath>#include<cstdio>#include<cstdlib>#include<stdio.h>#include<algorithm>using namespace std;const int maxn=1000100;int temp[maxn<<1];string t,s;int n;int main(){	freopen("c.in","r",stdin);	freopen("c.out","w",stdout);		scanf("%d",&n);	for (int q=1; q<=n; q++)	{		cin>>t;		int tlen=t.size()-1;				s="";		s+='@';		for (int i=0; i<tlen; i++)		{			s+=t[i];			s+='#';		}		s+=t[tlen];		s+='$';				int slen=s.size();		int p=1,ans=0;		temp[0]=temp[1]=0;		for (int i=2; i<slen; i++)		{			temp[i]=max( 0,min( temp[2*p-i],p+temp[p]-i ) );			while ( s[i+temp[i]]==s[i-temp[i]-2] ) temp[i]++;			if ( i+temp[i]>p+temp[p] ) p=i;			if (s[i-1]=='#') ans=max(ans, temp[i]+(temp[i])%2 );			else ans=max(ans, temp[i]+(temp[i]-1)%2 );		}				printf("%d/n",ans);	}		return 0;}
上一篇:文章標題

下一篇:c語言之單鏈表

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 丽江市| 塘沽区| 青神县| 内江市| 江西省| 正阳县| 新田县| 叙永县| 清镇市| 建水县| 淄博市| 台湾省| 荥经县| 周宁县| 潼南县| 临漳县| 全州县| 饶阳县| 东至县| 涡阳县| 双牌县| 巨野县| 彭山县| 吉安县| 宝丰县| 突泉县| 新巴尔虎左旗| 邛崃市| 惠安县| 辽阳县| 长葛市| 宜兰县| 奉节县| 迁西县| 汕尾市| 银川市| 读书| 交口县| 泗洪县| 合肥市| 文成县|