#C. 串联

    Type: Default File IO: link 1000ms 512MiB

串联

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

串联(link\texttt{link}

【题目描述】

小 D 有写着 0n10\sim n-1 的珠子各 kk 颗,某天他又捡到了一些珠子(每种珠子 1\le 1 个)。

他想把这些珠子串联成一条链,小 D 心里有一个数 xx,如果这条链中的某一个段(一个区间)中写着 0x10\sim x-1 的珠子都出现过,那么他认为这个区间是美丽的。

定义 f(x)f(x) 表示所有把珠子串成链的方案中,美丽区间数的最大值。

他不确定 xx 具体的值,因此他请你帮他求出 f(l)f(r)f(l)\sim f(r)

【输入格式】

link.in\texttt{link.in} 中读入数据。

第一行四个整数 n,l,r,kn,l,r,k

第二行一个长度为 nn 的 01 串 SSSS 的第 ii 个位置为 11 说明他又捡到了一颗写着 i1i-1 的珠子。

【输出格式】

输出到 link.out\texttt{link.out} 中。

一行一个整数表示 i=lr(f(i)×233imod998244353)\bigoplus_{i=l}^r(f(i)\times 233^i\bmod 998244353) 的值,其中 \oplus 表示二进制异或。

【样例 1 输入】

2 0 1 2
10

【样例 1 输出】

3034

【样例 1 解释】

f(0)=15,f(1)=13f(0)=15,f(1)=13,链形如 0,1,0,1,00,1,0,1,0 时取到最大值。

【样例 2 输入】

14 1 14 13
10111101010101

【样例 2 输出】

1062272474

【样例 3】

见下发文件中的 link3.in\texttt{link3.in}link3.ans\texttt{link3.ans}

该样例满足子任务 88 的限制

【数据范围】

mm 表示珠子总数(m=nk+i=1nSim=nk+\sum_{i=1}^n S_i)。

对于所有的测试数据有:n107,m109,0lrm,k1n\le 10^7,m\le 10^9,0\le l\le r\le m,k\ge 1

子任务编号 分值 特殊限制
11 55 n,m9n,m\le 9
22 1515 n,m200n,m\le 200
33 n,m5000n,m\le 5000
44 55 n2,l=0,r=1n\le 2,l=0,r=1
55 1010 n106,l=r=mn\le 10^6,l=r=m
66 n106,Si=0,k=1n\le 10^6,S_i=0,k=1
77 1515 n106,rl+1104n\le 10^6,r-l+1\le 10^4
88 n2×106n\le 2\times 10^6
99 1010 无特殊限制

NOIP2024 模拟赛(一)

Not Attended
Status
Done
Rule
OI
Problem
4
Start at
2024-8-3 7:50
End at
2024-8-3 12:05
Duration
4.3 hour(s)
Host
Partic.
28