BZOJ 3328: PYXFIB 解题报告】的更多相关文章

BZOJ 3328: PYXFIB 题意 给定\(n,p,k(1\le n\le 10^{18},1\le k\le 20000,1\le p\le 10^9,p \ is \ prime,k|(p-1))\),求 \[ \sum_{i=0}^{\lfloor\frac{n}{k}\rfloor}\binom{n}{ik}F_{ik} \] 其中\(F_{i}\)代表斐波那契数列的第\(i\)项. 首先分析一波题目条件,有个很奇怪的条件\(k|\varphi(p)\) 如果对NTT或者单位根有所…
3328: PYXFIB Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 130  Solved: 41[Submit][Status][Discuss] Description Input 第一行一个正整数,表示数据组数据 ,接下来T行 每行三个正整数N,K,P Output T行,每行输出一个整数,表示结果 Sample Input 1 1 2 3 Sample Output 1 HINT Source 思路与莫比乌斯反演相似,通过二项式巧妙地…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3328 单位根反演主要就是有 \( [k|n] = \frac{1}{k}\sum\limits_{i=0}^{k-1}w_{k}^{i*n} \) 如果 k | n ,转 n 下就会是 1 :不然用等比数列求和公式可知是 0 . 一般是构造一个 \( f(x) = ( 1+x )^n \) 之类的,来求含有组合数的式子.比如 \( \sum\limits_{i=0}^{n}C_{n}^{i…
2959: 长跑 Description 某校开展了同学们喜闻乐见的阳光长跑活动.为了能"为祖国健康工作五十年",同学们纷纷离开寝室,离开教室,离开实验室,到操场参加3000米长跑运动.一时间操场上熙熙攘攘,摩肩接踵,盛况空前. 为了让同学们更好地监督自己,学校推行了刷卡机制. 学校中有n个地点,用1到n的整数表示,每个地点设有若干个刷卡机. 有以下三类事件: 1.修建了一条连接A地点和B地点的跑道. 2.A点的刷卡机台数变为了B. 3.进行了一次长跑.问一个同学从A出发,最后到达B最…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3328 单位根反演,主要用到了 \( [k|n] = \frac{1}{k} \sum\limits_{i=0}{k-1} w_{k}^{in} \)推导见:https://www.cnblogs.com/galaxies/p/bzoj3328.html构造 \( F(x) \) 是为了凑成二项式定理的形式,其实也不难想:又忘记在定义构造函数时写 N 了!把 =N(...) 写成 =(...…
BZOJ 4238 电压 考虑一条边成为答案以后,删去Ta后剩下的图是一个或很多个二分图,即没有奇环 则一条边可以成为答案,当且仅当自己在所有奇环的交上且不在偶环上. 考虑建出dfs树,那么返祖边一定在环上. 把边下放到点上,考虑处理出返祖边覆盖的两个端点直接的路径,这些点都在这个环上,按照这个环的奇偶打一个差分上去即可. 但是这样只考虑了只有一个返祖边在环上的情况,返祖边在两个环以上的环我们没有处理 考虑分类讨论 若两个有交返祖边奇偶不同,少处理的一个环是奇环,无论是大奇环还是小奇环都没有影响…
BZOJ 3159: 决战 1 sec 512MB 题意: 给你一颗\(n\)个点,初始点权为\(0\)的有跟树,要求支持 Increase x y w 将路径\(x\)到\(y\)所有点点权加上\(w\) Sum x y 询问路径\(x\)到\(y\)的点权和 Major x y 询问从路径\(x\)到\(y\)最大点权 Minor x y 询问最小点权 Invert x y 将路径上的点权翻转 有个性质,修改操作一定满足\(x\)为\(y\)祖先或者\(y\)为\(x\)祖先(实际没什么用处…
这个题好像很有趣的样子. 题目分析: 房间都是 $1\times k$ 的,也就是一条一条的.这个好像比较显然的样子. 一个房间如果要覆盖某个格子$u$,那么这个房间的面积至少为 $dis(u, Boundry)$,即其到边界的距离,这个好像也比较显然的样子. 于是答案至少是 $max\{dis(u, Boundry)\}$,然后可以通过构造来取到最小值,即答案就是$max\{dis(u, Boundry)\}$. 算法流程: 特判:如果输入的是一个边长为一个奇数的正方形,且 $(x,y)$ 恰…
这个题感觉很神呀.将 FFT 和 Manacher 有机结合在了一起. 首先我们不管那个 “不能连续” 的条件,那么我们就可以求出有多少对字母关于某一条直线对称,然后记 $T_i$ 为关于直线 $i$ 对称的字母对的数量,那么答案(暂记为 $Ans$)就会是: $$Ans = \sum 2^{T_i}-1$$ 在不管那个 “不能连续” 的条件的时候,这个应该是显然的. 怎么算的话,我们弄两次.分别把 $a$ 和 $b$ 当做 $1$,另一个当做 $0$,然后就可以得到一个多项式,将这个多项式平方…
这个题感觉很厉害的样子.. 首先我们注意到一点:每次加的 $d$ 都是非负的. 那么就说明一个数只可能从负数变成非负数并且只会变一次. 所以我们就可以暴力地去改变一个数的正负情况. 然后我们就可以用树链剖分,维护一下区间的最大负数和负数的个数就可以了. 时间复杂度 $O(n\log^2 n)$,空间复杂度 $O(n)$. #include <cstdio> typedef long long LL; #define N 262144 + 5 #define INF 12345678909876…