bzoj 4816】的更多相关文章

4816: [Sdoi2017]数字表格 Time Limit: 50 Sec  Memory Limit: 128 MBSubmit: 501  Solved: 222[Submit][Status][Discuss] Description Doris刚刚学习了fibonacci数列.用f[i]表示数列的第i项,那么 f[0]=0 f[1]=1 f[n]=f[n-1]+f[n-2],n>=2 Doris用老师的超级计算机生成了一个n×m的表格,第i行第j列的格子中的数是f[gcd(i,j)]…
4816: [Sdoi2017]数字表格 Time Limit: 50 Sec  Memory Limit: 128 MBSubmit: 666  Solved: 312 Description Doris刚刚学习了fibonacci数列.用f[i]表示数列的第i项,那么 f[0]=0 f[1]=1 f[n]=f[n-1]+f[n-2],n>=2 Doris用老师的超级计算机生成了一个n×m的表格,第i行第j列的格子中的数是f[gcd(i,j)],其中gcd(i,j)表示i, j的最大公约数.D…
洛谷很早以前就写过了,今天交到bzoj发现TLE了. 检查了一下发现自己复杂度是错的. 题目传送门:洛谷P3704. 题意简述: 求 \(\prod_{i=1}^{N}\prod_{j=1}^{M}F_{\gcd(i,j)}\bmod mod\) ,其中 \(F_{i}\) 是斐波那契数列的第 \(i\) 项, \(mod=10^9+7\) . \(T\) 组数据. 题解: 喜闻乐见的推式子时间. 不失一般性,假设 \(N\le M\) . \[\begin{aligned}&\prod_{i=…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4816 \( ans=\prod\limits_{d=1}^{n}f[d]^{\sum\limits_{l=1}^{\frac{n}{d}}\left\lfloor\frac{n}{l*d}\right\rfloor*\left\lfloor\frac{m}{l*d}\right\rfloor} \) \(=\prod\limits_{D=1}^{n}\prod\limits_{d|D}f[…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4816 推导过程同:http://www.cnblogs.com/zhouzhendong/p/8666106.html 可以利用阶乘处理逆元. 代码如下: #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; ,mod=1e…
首先是惯例的吐槽.SDOI题目名称是一个循环,题目内容也是一个循环,基本上过几年就把之前的题目换成另一个名字出出来,喜大普奔亦可赛艇.学长说考SDOI可以考出联赛分数,%%%. 下面放解题报告.并不喜欢打莫比鸟斯的解题报告就是因为公式编辑太鬼. 不知道多少分算法:简单模拟不解释. 正解一眼是莫比鸟斯函数,话说上次考莫比鸟斯就是去年吧,好像题目名也叫数字表格,只不过多了一个前缀"Crash的". 慢慢推吧,这里公式编辑器好像坏了?雾,贼慢. 假设n<=m;(if(n>m)sw…
这题是莫比乌斯反演的典型题也是很有趣的题. 题意:求,其中f为为斐波那契数列 那么首先观察一下指数,发现是我们熟悉的形式,可以转化成这样的形式: 令T=kd,且假设n<m,有: 令 则原式= 这样的话我们的步骤就是这样的: 线性筛出莫比乌斯函数,同时递推求出f 然后利用f和莫比乌斯函数求出g(枚举倍数,这样把时间复杂度控制在调和级数级别),注意到有时会出现分数(莫比乌斯函数值为-1时),所以对上面的每个f需要求出对应地逆元(费马小定理) 然后对g求出前缀积,这样就可以利用数论分块在根号级的时间内…
题目链接 总感觉博客园的\(Markdown\)很..\(gouzhi\),可以看这的. 这个好像简单些啊,只要不犯sb错误 [Update] 真的算反演中比较裸的题了... \(Description\) 用\(f[i]\)表示\(Fibonacci\)数列的第\(i\)项,求\[\prod_{i=1}^n\prod_{j=1}^mf[\gcd(i,j)]\mod (10^9+7)\] \(Solution\) \[ \begin{aligned} Ans &=\prod_{i=1}^n\pr…
Description Doris刚刚学习了fibonacci数列.用f[i]表示数列的第i项,那么 f[0]=0 f[1]=1 f[n]=f[n-1]+f[n-2],n>=2 Doris用老师的超级计算机生成了一个n×m的表格,第i行第j列的格子中的数是f[gcd(i,j)],其中gcd(i,j)表示i, j的最大公约数.Doris的表格中共有n×m个数,她想知道这些数的乘积是多少.答案对10^9+7取模. Input 有多组测试数据. 第一个一个数T,表示数据组数. 接下来T行,每行两个数n…
大力反演出奇迹. 然后xjb维护. 毕竟T1 #include <map> #include <ctime> #include <cmath> #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define F(i,j,k) fo…