首页 > 其他分享 >P9501 RiOI-2 likely

P9501 RiOI-2 likely

时间:2024-02-07 13:44:21浏览次数:28  
标签:right frac sum likely le P9501 RiOI binom left

好好好好好题

\(T\) 组数据,给定 \(n, m, k\),求所有 \(2^n\) 个大小为 \(n\) 的由 \(\pm 1\) 组成的有标号环 \(a_{0\dots n-1}\) 中,有多少个满足 \(\sum_{i=0}^{n-1}\prod_{j=0}^{m-1}a_{(i+j)\ \bmod\ n}=k\)。对 \(998244353\) 取模。

\(1\le T\le 10, 2\le n, \sum n\le 5\times 10^6, |k|\le n, 2\le m\le n\)

显然的这就是对 \(b_i = \prod_{j=0}^{m-1}a_{(i+j)\ \bmod\ n}\) 中 \(-1\) 的个数进行了限制,以下重新令 \(k\) 表示这个个数。于是我们关心对于一个特定的 \(b\) 序列,如何判断是否存在 \(a\) 序列与其对应,以及对应的 \(a\) 序列有多少个。

对于任何一个 \(b\),考虑它对应的 \(c_i = b_ib_{i+1} = a_ia_{(i+m)\ \bmod\ n}\),显然地,下标划分成了 \(g = \gcd(n,m)\) 个不同的小环。这些小环上,\(c\) 的数值乘积为 \(0\),也就是说相邻两个 \(b\) 小环的乘积相等,也就是所有 \(b\) 小环的乘积都相等,这也就是说,所有小环上要么都有奇数个 \(-1\),要么都有偶数个。所有合法的 \(b\) 数组必须满足这条性质。

当确定了一个满足上述条件的 \(b\) 数组后,通过它对应的 \(c\) 数组,我们确定了每个环上的 \(a\) 的相互关系,也就是说,只要确定其中的任何一个元素,就能确定整个环。此时对应的 \(a\) 数组恰好有 \(2^g\) 个(它们并不都合法)。\(b\) 可以由 \(c\) 和 \(b_0\) 唯一确定,也就是说,当前找到的满足 \(c\) 限制的 \(a\) 数组,如果同时满足 \(b_0\) 的限制,就能唯一对应上我们正在考虑的 \(b\) 数组。

对于每个环,只有将其整体反转的操作可以进行。当 \(\frac{m}{g}\) 为偶数时,对任何一个环做反转都是没有用的。只有一部分(\(2^{n-g}\) 个满足某种性质的)\(b\) 是合法的,并且这些 \(b\) 恰好对应了 \(2^g\) 个合法的 \(a\)(每个环上 \(a\) 都可以任意反转)。而当 \(\frac{m}{g}\) 为奇数时,每个满足先前限制的 \(b\) (\(2^{n-g+1}\) 个)都恰好对应了 \(2^{g-1}\) 个合法的 \(a\)。分别考虑两种情况的答案。

首先考虑 \(\frac{m}{g}\) 为奇数。令 \(t = \frac{n}{g}\),则答案为:

\[2^{g-1}[z^k]\left(\left(\sum_{i=0}^{t}[i\equiv 0\pmod 2]\binom{t}{i}z^i\right)^g + \left(\sum_{i=0}^{t}[i\equiv 1\pmod 2]\binom{t}{i}z^i\right)^g\right) \]

接下来考虑 \(\frac{m}{g}\) 为偶数的情况。注意到每个环上 \(a\) 中所有元素会被算恰好 \(\frac{m}{g}\) 次,所以我们相当于额外限制所有小环上有偶数个 \(-1\)。所以答案即为:

\[2^{g}[z^k]\left(\sum_{i=0}^{t}[i\equiv 0\pmod 2]\binom{t}{i}z^i\right)^g \]

怎么求这个东西呢?注意到设 \(\sum_{i=0}^t(-1)^i\binom{t}{i}z^i = (1-z)^t, \sum_{i=0}^t\binom{t}{i}z^i = (1+z)^t\)。所以

\[\begin{aligned} F = \left(\sum_{i=0}^{t}[i\equiv 0\pmod 2]\binom{t}{i}z^i\right)^g = \frac{1}{2^g}\left((1+z)^t+(1-z)^t\right)^g\\ G = \left(\sum_{i=0}^{t}[i\equiv 1\pmod 2]\binom{t}{i}z^i\right)^g = \frac{1}{2^g}\left((1+z)^t-(1-z)^t\right)^g \end{aligned} \]

显然求这两个多项式的点值需要用到长度为 \(\Theta(tg = n)\) 级别的 NTT,这个显然不可能过。但是由后面的封闭形式,很容易用快速幂求出单位根处的点值,大大加速求解过程。时间复杂度为 \(\Theta(n\log V)\),常数很小。

标签:right,frac,sum,likely,le,P9501,RiOI,binom,left
From: https://www.cnblogs.com/kyeecccccc/p/18010865

相关文章

  • 洛谷 P9915 「RiOI-03」3-2 题解
    Preface为啥有蓝啊,这题在机房里15min左右就切了,反倒是2A做了1h。。Solution将矩阵逆时针旋转\(90^{\circ}\),你会发现这是一棵线段树,是父亲左儿子的节点颜色是\(0\),是右儿子的节点颜色是\(1\)。容易发现,联通块一定是一条链。具体地,你从给定的点向上跳,跳到第一个与自己......
  • P9915 「RiOI-03」3-2 题解
    更好的阅读这是一道找规律的题目。因为我个人习惯,以下部分使用从\(1\)开始的下标讲述。首先我们以\(1\)来说:发现在第\(x\)行\(y\)列的连通块是可以直接连到第\(1\)列的,所以很容易可以得出\(1\)到\(y\)列的连通块数量是\(2^y-1\)。接着,我们考虑再后面的情况:......
  • ApplicationContext is unlikely to start due to a @ComponentScan of the default p
    springboot警告:ApplicationContextisunlikelytostartduetoa@ComponentScanofthedefaultpackage解决办法:1、一般发出这个警告的原因是你把启动类直接放在的src目录下面。2、你需要在src目录下面再建一个包,然后把启动类放到下面。3、或者你错将启动类放到java文件中了......
  • uniapp开发[Vue warn]: Unhandled error during execution of scheduler flush. This
    如下,uniapp开发nvue页面报如下警告:15:30:25.079[Vuewarn]:Unhandlederrorduringexecutionofrenderfunctionat<UniGroupclass="w710cell_groupbg_whiteborder_radius16flex_row"top="10">at<Index__pageId=1__pagePath="pages/g......
  • C语言 likely和unlikely
    likely和unlikely作用在知道哪个发生概率更高的情况下,有if时使用likely和unlikely让代码运行更快。likely和unlikely是两个宏,当有if-else分支时告诉编译器,哪个条件更加有可能发生。likely代表if分支大概率会发生,unlikely代表if分支大概率不会发生。#definelikely(x)__builtin_......
  • It's likely that neither a Result Type nor a Result Map was specified.
    It'slikelythatneitheraResultTypenoraResultMapwasspecified.很可能既没有指定结果类型也没有指定结果映射。出现问题的代码:本段代码功能是查询一张表的全部点击查看代码<mappernamespace="com.ding.dao.RoleDao"><!--用于select查询公用抽取的列-->......
  • P9498 「RiOI-2」equals题解
    题目传送门:P9498「RiOI-2」equals-洛谷|计算机科学教育新生态(luogu.com.cn)这是洛谷月赛Div.2T3,由于我比较菜,只能赛场上切到T3(T4是黑。),开题我们很容易就看出这道题首先需要初始化每个点到根节点的最短路,而且边权都为1,所以我们先无脑打一个堆优化的dijkstra,剩下的就是处......
  • P9499 「RiOI-2」change 题解--zhengjun
    思维妙妙题。赛时的错误做法:找到每个点往后进位变优的位置,最多\(O(\log)\)个;然后从前往后能变优就变优,往后贪心进位。hack数据:0133510021022输出:100这样子由于\(1\)到\(2\)不优,而\(1\)到\(3\)个数不够,所以导致无法进位到\(3\)。所以加强一下......
  • 【反思】洛谷8月月赛 Div.2 & RiOI Round 2 赛后反思
    RiOIR2赛后反思赛时开了一个T1,但是\(0pts\),然后就跑去跟人对线然后复盘(主要是我的锅,我忘记对线怎么开始的了)到了吃饭(雾不过本来我也不会做,不能怪人家赛后是shenshen教我T1+看的若归老师的反思捏推歌:歌爱ユキ&稲葉曇《キミに回帰缐》(希望没打错是我的错吗铅笔......
  • 2023年多校联训NOIP层测试4+洛谷 8 月月赛 I & RiOI Round 2
    2023年多校联训NOIP层测试4爆零了T1幸运数字\(0pts\)T2密码\(0pts\)没做到,咕了。T3小X和他的朋友们\(0pts\)没做到,咕了。T4树上询问\(0pts\)没做到,咕了。【LGR-150-Div.2】洛谷8月月赛I&RiOIRound2T1luoguP9496「RiOI-2」hacker\(100pts\)......