当前位置:网站首页>2022 Hangzhou Electric Multi-School 1st Session 01
2022 Hangzhou Electric Multi-School 1st Session 01
2022-08-05 05:12:00 【The wonderful sauce of eating peppercorns】
题意:设F(i)表示sA prefix for the string[1…i]The intersection length of all intervals in k的倍数的boardnumber of strings,求 ∏ i = 1 ∣ s ∣ ( f ( i ) + 1 ) \prod_{i=1}^{|s|}{(f(i)+1)} ∏i=1∣s∣(f(i)+1)
做法:z函数,差分
先求出s串的z函数(exkmp),设z[i]表示s串的z函数.Each prefix can be usedboardConvert each suffix to the prefix of the original stringlcp,Consider each suffix[i…n]的贡献,
画个图,容易发现当z[i]>=i时,At this time this suffix is the same as the original stringlcppart only contributes.
此时第2*(i-1)+k,2*(i-1)+2k,2*(i-1)+3k…Every prefix can count towards this part of the contribution.Just make a difference,But distance isk.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define IOS ios::sync_with_stdio(false),cin.tie(nullptr)
#define _for(i,a,b) for(int i=(a) ;i<=(b) ;i++)
#define _rep(i,a,b) for(int i=(a) ;i>=(b) ;i--)
#define mst(v,s) memset(v,s,sizeof(v))
#define pii pair<int ,int >
#define pb(v) push_back(v)
#define all(v) v.begin(),v.end()
#define int long long
#define inf 0x3f3f3f3f
#define INF 0x7f7f7f7f7f7f7f7f
#define endl "\n"
#define fi first
#define se second
#define ls p<<1
#define rs p<<1|1
#define lson p<<1,l,mid
#define rson p<<1|1,mid+1,r
#define AC return 0
#define ldb long double
const int N=2e6+5;
const int mod=998244353;
const double eps=1e-8;
ll nxt[N];
void qnxt(char *c){
int len = strlen(c);
int p = 0, k = 1, l;
nxt[0] = len;
while(p + 1 < len && c[p] == c[p + 1]) p++;
nxt[1] = p;
for(int i = 2; i < len; i++){
p = k + nxt[k] - 1;
l = nxt[i - k];
if(i + l <= p) nxt[i] = l;
else{
int j = max(0ll, p - i + 1ll);
while(i + j < len && c[i + j] == c[j]) j++;
nxt[i] = j;
k = i;
}
}
}
int lb,tag[N];
char b[N];
ll ans;
signed main(){
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
#endif
IOS;
int T;cin>>T;
while( T-- ){
cin >> b;
int k;cin>>k;
qnxt(b);
lb = strlen(b);
//枚举以i开始的后缀,Contribution difference
for(int i=0 ;i<lb ;i++){
int X = nxt[i];
int id = i+1;//真实下标
//Find the far left and the far rightpre[1...i]算贡献
if( X>=id && X-id+1 >= k){
tag[2*(id-1) + k]++;//左
int t = (X-id+1)/k*k;
if( 2*(id-1) + t + k <= lb ) tag[2*(id-1) + t + k]--;
}
}
int ans=1;
_for(i,1,lb){
if( i-k>=1) tag[i] = tag[i] + tag[i-k];
ans = ans * (tag[i]+1)%mod;
}
cout<<ans<<endl;
_for(i,0,lb+k){
tag[i]=0;
}
}
return 0;
}
边栏推荐
- Cron(Crontab)--use/tutorial/example
- phone call function
- [WeChat applet] WXML template syntax - conditional rendering
- 2022杭电多校第一场01
- The mall background management system based on Web design and implementation
- 【cesium】3D Tileset 模型加载并与模型树关联
- App rapid development and construction experience: the importance of small programs + custom plug-ins
- How to deal with DNS hijacking?
- How to quickly upgrade your Taobao account to a higher level
- UVA10827
猜你喜欢

ESP32 485 Illuminance

ESP32 485光照度

The solution to the failure to read channel information when dedecms generates a message in the background

Homework 8.4 Interprocess Communication Pipes and Signals
![[cesium] 3D Tileset model is loaded and associated with the model tree](/img/03/50b7394f33118c9ca1fbf31b737b1a.png)
[cesium] 3D Tileset model is loaded and associated with the model tree
![[cesium] element highlighting](/img/99/504ca9802db83eb33bc6d91b34fa84.png)
[cesium] element highlighting

span标签和p标签的区别

Application status of digital twin technology in power system

逆向理论知识4

请写出SparkSQL语句
随机推荐
JeeSite New Report
Flutter学习2-dart学习
Structured Light 3D Reconstruction (2) Line Structured Light 3D Reconstruction
Flutter真机运行及模拟器运行
About the installation of sklearn library
Flutter学习4-基本UI组件
Day14 jenkins部署
uva1325
u-boot debugging and positioning means
[cesium] element highlighting
【转】什么是etcd
What field type of MySQL database table has the largest storage length?
Requests the library deployment and common function
Flutter 父子组件如何都能收到点击事件
phone call function
「PHP8入门指南」PHP简明介绍
upload上传图片到腾讯云,如何上传图片
【解码工具】Bitcoin的一些在线工具
Community Sharing|Tencent Overseas Games builds game security operation capabilities based on JumpServer
MySQL Foundation (1) - Basic Cognition and Operation