codevs 5962 [SDOI2017]数字表格
[题解]
对于蓝色部分预处理前缀积。
然后在用除法分块搞一下。
O(Q*sqrt(min(n,m))*logn+nlogn)
- #include<cstdio>
- #include<iostream>
- using namespace std;
- typedef long long ll;
- const int N=1e6+;
- const ll mod=1e9+;
- int T,n,m,tot,mu[N],prime[N/];bool check[N];
- ll f[N],invf[N],g[N];
- ll fpow(ll a,ll p){
- ll res=;
- for(;p;p>>=,a=a*a%mod) if(p&) res=res*a%mod;
- return res;
- }
- void pre(){
- mu[]=;n=1e6;
- for(int i=;i<=n;i++){
- if(!check[i]) prime[++tot]=i,mu[i]=-;
- for(int j=;j<=tot&&i*prime[j]<=n;j++){
- check[i*prime[j]]=;
- if(!(i%prime[j])){mu[i*prime[j]]=;break;}
- else mu[i*prime[j]]=-mu[i];
- }
- }
- f[]=;
- for(int i=;i<=n;i++) f[i]=(f[i-]+f[i-])%mod;
- for(int i=;i<=n;i++) invf[i]=fpow(f[i],mod-);
- fill(g,g+n+,);
- for(int i=;i<=n;i++){
- for(int j=;i*j<=n;j++){
- if(mu[j]){
- g[i*j]=g[i*j]*(mu[j]==?f[i]:invf[i])%mod;
- }
- }
- }
- for(int i=;i<=n;i++) g[i]=g[i]*g[i-]%mod;
- }
- ll solve(int n,int m){
- ll ans=;
- if(n>m) swap(n,m);
- for(int i=,pos;i<=n;i=pos+){
- pos=min(n/(n/i),m/(m/i));
- ans=ans*fpow(g[pos]*fpow(g[i-],mod-)%mod,1LL*(n/i)*(m/i))%mod;
- }
- return ans;
- }
- int main(){
- pre();
- scanf("%d",&T);
- while(T--) scanf("%d%d",&n,&m),printf("%d\n",(int)solve(n,m));
- return ;
- }
codevs 5962 [SDOI2017]数字表格的更多相关文章
- BZOJ:4816: [Sdoi2017]数字表格
4816: [Sdoi2017]数字表格 Time Limit: 50 Sec Memory Limit: 128 MBSubmit: 501 Solved: 222[Submit][Status ...
- [Sdoi2017]数字表格 [莫比乌斯反演]
[Sdoi2017]数字表格 题意:求 \[ \prod_{i=1}^n \prod_{j=1}^m f[(i,j)] \] 考场60分 其实多推一步就推倒了... 因为是乘,我们可以放到幂上 \[ ...
- 【BZOJ 4816】 4816: [Sdoi2017]数字表格 (莫比乌斯)
4816: [Sdoi2017]数字表格 Time Limit: 50 Sec Memory Limit: 128 MBSubmit: 666 Solved: 312 Description Do ...
- P3704 [SDOI2017]数字表格
P3704 [SDOI2017]数字表格 链接 分析: $\ \ \ \prod\limits_{i = 1}^{n} \prod\limits_{j = 1}^{m} f[gcd(i, j)]$ $ ...
- [SDOI2017]数字表格 --- 套路反演
[SDOI2017]数字表格 由于使用markdown的关系 我无法很好的掌控格式,见谅 对于这么简单的一道题竟然能在洛谷混到黑,我感到无语 \[\begin{align*} \prod\limits ...
- 题解-[SDOI2017]数字表格
题解-[SDOI2017]数字表格 前置知识: 莫比乌斯反演</> [SDOI2017]数字表格 \(T\) 组测试数据,\(f_i\) 表示 \(\texttt{Fibonacci}\) ...
- [SDOI2017]数字表格 & [MtOI2019]幽灵乐团
P3704 [SDOI2017]数字表格 首先根据题意写出答案的表达式 \[\large\prod_{i=1}^n\prod_{j=1}^mf_{\gcd(i,j)} \] 按常规套路改为枚举 \(d ...
- bzoj4816 [Sdoi2017]数字表格
Description Doris刚刚学习了fibonacci数列.用f[i]表示数列的第i项,那么 f[0]=0 f[1]=1 f[n]=f[n-1]+f[n-2],n>=2 Doris用老师 ...
- [SDOI2017]数字表格
Description Doris刚刚学习了fibonacci数列.用f[i]表示数列的第i项,那么 f[0]=0 f[1]=1 f[n]=f[n-1]+f[n-2],n>=2 Doris用老师 ...
随机推荐
- 摘:LIB和DLL的区别与在VC中的使用
共有两种库:一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library.一种是LIB包含函数 ...
- 使用TestFlight邀请外部人员測试APP
怎样使用TestFlight邀请外部人员測试APP 详细过程例如以下: 1.在邀请測试人员的时候.按上线流程打包APP,提交. 2.提交审核,在邀请測试员的时候,你必须先提交审核,苹果会在大约2个工作 ...
- FTPHelper-封装FTP的相关操作
using System; using System.IO; using System.Net; using System.Text; namespace Whir.Software.DataSync ...
- 在windows10下搭建ubuntu环境
虽然win10下搞了一个ubuntu子系统,但是还是各种不习惯,经过一番研究,我还是选择下面的组合来搭建: Git Bash + ConEmu + MinGW15.3 + vim + chocolat ...
- python内置函数之__import__()
__import__(name, globals=None, locals=None, fromlist=(), level=) 用来导入模块. >>> __import__('os ...
- shiro身份认证
pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...
- 读取数据库中timestamp类型去掉毫秒
数据库中查询出来的时间是:2015-09-24 14:30:26.2,带有毫秒,需要去掉. 方法一: public static Timestamp getSystemTime() { Date dt ...
- eclipse开发cocos2dx 3.2环境搭建之中的一个: Android C\C++环境搭建(ndk r9d)
这几天有时间,琢磨一下cocos2dx.cocos2d家族事实上挺庞大的.也有cocos2d-android这样的能够直接用Java语言来开发的,可是cocos2d-android资料相对少一些.并且 ...
- EF调用存储过程、函数
一.ef4.1 codeFirst 修改表结构 增加字段等 EF code first需要重新生成库导致数据丢失的问题 说这个问题前 首先先说下 我使用ef4.1 codefirst的目的. 是因为可 ...
- Ubuntu 下添加OpenERP command 快捷启动方式
编辑home目录下的.bashrc文件 alias xjerp="~/odoo/xj/openerp-server -r openerp --addons-path='~/odoo/xj/o ...