首页 > 其他分享 >SP34020 ADAPET - Ada and Pet 题解

SP34020 ADAPET - Ada and Pet 题解

时间:2024-02-13 21:12:25浏览次数:44  
标签:nxt Pet 题解 ll long ADAPET define

题目传送门

前置知识

前缀函数与 KMP 算法

解法

经检验 样例,我们发现 \(|S|k\) 并不是最优答案。

考虑利用 luogu P4391 [BOI2009] Radio Transmission 无线传输 结论的逆命题,首先必须要有一个完整的 \(S\),然后将 \(|S|-next_{S}\) 复制 \(k-1\) 次即可。故 \(|S|+(|S|-next_{|S|})(k-1)\) 即为所求。

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long 
#define ull unsigned long long
#define sort stable_sort 
#define endl '\n'
ll nxt[500002];
char s[500002];
int main()
{
	ll t,n,m,i,j,k;
	scanf("%lld",&t);
	for(k=1;k<=t;k++)
	{
		scanf("%s%lld",s+1,&m);
		n=strlen(s+1);
		for(i=2,nxt[1]=j=0;i<=n;i++)
		{
			while(j>=1&&s[i]!=s[j+1])
			{
				j=nxt[j];
			}
			j+=(s[i]==s[j+1]);
			nxt[i]=j;
		}
		printf("%lld\n",n+(n-nxt[n])*(m-1));
	}
	return 0;
}

标签:nxt,Pet,题解,ll,long,ADAPET,define
From: https://www.cnblogs.com/The-Shadow-Dragon/p/18014819

相关文章

  • P5350 序列 题解
    题目链接:P5350序列比较不难的可持久化文艺平衡树?有道弱化版:数组操作不过弱化版没有随机数据,很显然ODT会直接被卡,这题数据随机倒是能用ODT做一下,而且码量也比较小,可以自己写写,或者参照我给的弱化版我给了这题部分操作的ODT写法。我们还是来讲最实用的可持久化文艺平衡树......
  • UVA12467 Secret Word 题解
    题目传送门前置知识前缀函数与KMP算法解法考虑将\(S\)翻转后得到\(S'\),然后就转化为求\(S'\)的一个最长子串使得其是\(S\)的前缀。使用KMP求解即可。代码#include<bits/stdc++.h>usingnamespacestd;#definelllonglong#defineullunsignedlonglong#d......
  • WGOI R1 真夏飞焰 题解.18014664
    【题目大意】给定序列\(a\),我们定义序列\(a,b\)是「\(k\)相似」的,当且仅当对于\(a\)中每一个四元组\((l_1,r_1,l_2,r_2)\),若满足\(r_1-l_1+1=r_2-l_2+1\lek,l_2=r_1+1,a_{l_1\ldotsr_1}=a_{l_2\ldotsr_2}\),则有\(b_{l_1\ldotsr_1}=b_{l_2\ldot......
  • CF609D题解
    Gadgetsfordollarsandpounds题目传送门题解给一个单\(\log\)题解。“求最早完成买\(k\)样东西的天数。”——很明显的二分答案。在检验函数中,我们应当把前\(k\)小的物品费用之和与总金额作比较,其它题解大多使用直接排序的方法,于是就多了一只\(\log\)。其实没有必......
  • P4559 [JSOI2018] 列队 题解
    题目链接:列队半年前mark的题,结果现在一下子就会做了。顺便写写我的手玩过程和复杂度说明。考虑比较特殊的情况:比较特殊的,发现从黑色到红色区间我们无论咋选择,由于\(\left|a_{right}-a_{left}\right|\),这玩意如果\(right\)表示红色的一边,那么这个绝对值可以直接拆掉,那么......
  • [ARC171E] Rookhopper's Tour 题解
    题目链接首先把\(m=2\)和\(m\)为奇数的情况判掉,由于我们要对合法的摆放方案计数,而一个摆放方案要判断合法性就必须通过一组合法的移动过程,对移动的状态进行记录以此转移和优化显然没啥前途,因此我们考虑摆放方案和移动过程之间的联系。一个比较显然的观察是摆放方案和移动过......
  • 2024牛客寒假算法基础集训营2个人补题题解(K、D)
    比赛链接:2024牛客寒假算法基础集训营2K、TokitsukazeandPassword(easy)题面看着很难实际上只要暴力的东西,赛时看了眼题面就溜了血亏爆搜,枚举\(abcd\)和_可能的值,枚举的情况只有\(9*8*7*6*9=27216\)种。判断按照枚举出的对应值排列出的密码是否满足条件,满足就\(ans++\)写完......
  • Atcoder Educational DP Contest 题解
    比赛链接:Atcoderr或者题单A:Frog1常规线性dp,注意到对于每个落点来说,青蛙只能由第\(i-1\)个石头或者第\(i-2\)个石头转移得到,那么我们让\(dp[i]\)为当跳到第\(i\)个石头上的最小费用。此时显然有:\[dp_i=\min(dp_{i-1}+\left|h_i-h_{i-1}\right|,dp_{i-2}+\left|h_......
  • JOISC 2018 题解
    JOISC2018loj上有几乎全部的题目,写了题意的就是loj上没有的。D1T1简单题。根据颜色段均摊的结论,每个点到根的路径上颜色段的总和是\(O(n\logn)\)的,于是直接每次暴力找颜色段即可。复杂度\(O(n\log^2n)\)。提交记录D1T2又是计算几何。我们需要画出一条闭合折线,并且......
  • JOISC 2017 题解
    JOISC2017loj上有几乎全部的题目,写了题意的就是loj上没有的。D1T1开场放大。首先,对于一个点,它最后覆盖的一定是一个矩形,这就意味着如果我们知道了\(u,d,l,r\)操作各用了多少次,他们之间的顺序是不重要的,我们可以直接当做把一种操作做完再做剩下的操作,这样就可以做到\(O(......