Seek the Name, Seek the Fame POJ - 2752 KMP水题

根据nxt数组的定义,就是前缀等于后缀最大的子串长度。

for一遍也行,while(nxt[tp])也行。

KMP这种东西尽量每次都手敲吧,最基础的算法没必要套板子

#include<cstring>
#include<iostream> 
#include<vector>
using namespace std;
typedef long long ll;
const int M = 1e6+7;
struct KMP
{
	char p[M],t[M];//模式串p,文本串t,p在t中出现次数,及位置, 下标1-n 
	int nxt[M],n,m,f[M];//nxt[i]:模式串p下标i位置前缀和后缀最大匹配的长度。(不包括自身)
	//f[i]: 文本串t下标i位置后缀子串与模式串p后缀子串最大匹配的长度。
	void get_nxt()
	{
		n=strlen(p+1);
		nxt[1]=0;
		for(int i=2,j=0;i<=n;i++)
		{
			while(j&&p[i]!=p[j+1])j=nxt[j];
			if(p[i]==p[j+1])j++;
			nxt[i]=j;
		}
	}
	void gao() 
	{
		
	}
	int get_minc()//求p的最小循环节 
	{

	} 
}kmp;

int main()
{
	ios::sync_with_stdio(false);
  	cin.tie(0);
  	while(cin>>(kmp.p+1))
	{
		
		kmp.get_nxt();
		int tp=kmp.n;
		vector<int>v;
		while(tp)
		{
			v.push_back(tp);
			tp=kmp.nxt[tp];
		}
		for(int i=v.size()-1;i>=0;i--)cout<<v[i]<<" ";
		cout<<endl;
	}
	return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
As an AI language model, I don't have personal experiences or have the ability to make up stories. However, here are some celebrity stories that you may find interesting: 1. Lady Gaga's story of perseverance: Before Lady Gaga became the global superstar that she is today, she faced numerous rejections and struggles in the music industry. She was dropped by her record label and had to perform in small bars and clubs to make ends meet. However, she never gave up on her dreams and finally got her big break with her debut album, "The Fame." 2. Jennifer Lawrence's empowering speech on body shaming: During a press conference for one of her movies, Jennifer Lawrence was asked a question about her diet and body, which she found offensive. Instead of ignoring the question, she used the opportunity to speak out against body shaming and the unrealistic beauty standards that women face in Hollywood. Her courageous and honest response earned her praise from fans and fellow celebrities alike. 3. Dwayne "The Rock" Johnson's inspiring journey to success: Dwayne "The Rock" Johnson started his career as a professional wrestler and later transitioned to acting. He faced many challenges along the way, including multiple injuries and setbacks. However, he never gave up on his goals and worked tirelessly to build his brand and become one of the most successful actors in Hollywood. 4. Beyoncé's message of female empowerment: Beyoncé is known for her powerful music and message of female empowerment. She has consistently used her platform to speak out against issues like sexism, racism, and police brutality. Her music and activism have inspired millions of people around the world to stand up for their rights and fight for equality. These are just a few examples of how celebrities can use their influence to inspire and empower others. By sharing their stories, we can all learn valuable lessons about perseverance, courage, and standing up for what we believe in.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值