BZOJ 3601: 一个人的数论
题目链接:www.lydsy.com/JudgeOnline/problem.php?id=3601
题意:
思路:
因此可以用高斯消元得到ai。
const int mod=1000000007;
const int N=111; i64 myPow(i64 x,i64 y)
{
if(y<0) return myPow(myPow(x,mod-2),-y);
i64 ans=1;
while(y)
{
if(y&1) ans=ans*x%mod;
x=x*x%mod;
y>>=1;
}
return ans;
} i64 a[N][N],pp[N];
int n,p; i64 A[N]; void init()
{
int i,j;
for(i=0;i<=p+1;i++)
{
pp[i]=myPow(i+1,p)+(i==0?0:pp[i-1]);
pp[i]%=mod;
a[i][p+2]=pp[i];
a[i][0]=1;
i64 pre=1;
for(j=1;j<=p+1;j++)
{
pre=pre*(i+1)%mod;
a[i][j]=pre;
}
}
int k;
for(i=0;i<=p+1;i++)
{
for(j=i;j<=p+1;j++) if(a[j][i]) break;
if(i!=j)
{
for(k=0;k<=p+2;k++) swap(a[i][k],a[j][k]);
}
for(j=0;j<=p+1;j++) if(j!=i&&a[j][i])
{
i64 tmp=a[j][i]*myPow(a[i][i],-1)%mod;
for(k=0;k<=p+2;k++) a[j][k]=(a[j][k]-tmp*a[i][k])%mod;
}
}
for(i=0;i<=p+1;i++)
{
A[i]=a[i][p+2]*myPow(a[i][i],-1)%mod;
}
} int d[1111][2]; int main()
{ scanf("%d%d",&p,&n);
init();
int i; for(i=1;i<=n;i++) scanf("%d%d",&d[i][0],&d[i][1]);
i64 ans=0;
for(i=0;i<=p+1;i++)
{
i64 tmp=1;
int j;
for(j=1;j<=n;j++)
{
tmp=tmp*myPow(d[j][0],(i64)d[j][1]*i)%mod;
tmp=tmp*(1-myPow(d[j][0],p-i))%mod;
}
ans+=A[i]*tmp%mod;
}
ans%=mod;
if(ans<0) ans+=mod;
printf("%lld\n",ans);
}
BZOJ 3601: 一个人的数论的更多相关文章
- BZOJ 3601 一个人的数论 ——莫比乌斯反演 高斯消元
http://www.cnblogs.com/jianglangcaijin/p/4033399.html ——lych_cys 我还是太菜了,考虑一个函数的值得时候,首先考虑是否积性函数,不行的话就 ...
- BZOJ 3601 一个人的数论 (拉格朗日插值+莫比乌斯反演)
题意 略 题解 orz Freopen的博客 CODE #pragma GCC optimize (3) #include <bits/stdc++.h> using namespace ...
- 【bzoj 3601】一个人的数论 (莫比乌斯反演+伯努利数)
题解: (吐槽:网上题解那个不严谨猜测真是没谁了……关键是还猜得辣么准……) 直接化简到求和那一段: $f_{d}(n)=\sum_{t|n}\mu(t)t^{d}\sum_{i=1}^{\frac{ ...
- 【BZOJ】【2219】数论之神
中国剩余定理+原根+扩展欧几里得+BSGS 题解:http://blog.csdn.net/regina8023/article/details/44863519 新技能get√: LL Get_yu ...
- Bzoj 3505: [Cqoi2014]数三角形 数论
3505: [Cqoi2014]数三角形 Time Limits: 1000 ms Memory Limits: 524288 KB Detailed Limits Description
- bzoj 3834 [Poi2014]Solar Panels 数论分块
3834: [Poi2014]Solar Panels Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 367 Solved: 285[Submit] ...
- 「BZOJ 2440」完全平方数「数论分块」
题意 \(T\)组数据,每次询问第\(k\)个无平方因子的数(\(1\)不算平方因子),\(T\leq 50,k\leq 10^9\) 题解 \(k\)的范围很大,枚举肯定不行,也没什么奇妙性质,于是 ...
- bzoj 2242 [SDOI2011]计算器(数论知识)
Description 你被要求设计一个计算器完成以下三项任务: 1.给定y,z,p,计算Y^Z Mod P 的值: 2.给定y,z,p,计算满足xy≡ Z ( mod P )的最小非负整数: 3.给 ...
- bzoj 2226: [Spoj 5971] LCMSum 数论
2226: [Spoj 5971] LCMSum Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 578 Solved: 259[Submit][St ...
随机推荐
- mybatis的xml中特殊转义字符和模糊查询like的写法
做个备忘: xml特殊符号转义写法 < < > > <> <> & & &ap ...
- Oracle游标整理二
1.概念 游标是指向SQL处理的内存区的句柄或指针.当使用一个PL/SQL块来执行DML语句或只返回一行结果的SELECT语句时,系统将自动创建一个隐式游标.如果SQL语句返回多个结果,就必须 ...
- 夺命雷公狗---node.js---13之Buffer的转换
其实Buffer也是一种数据结构的东西,但实际中用得并不多,我们只需要知道常用的转换方法即可: /** * Created by leigood on 2016/8/30. */ var str = ...
- 解决windows的控制台显示utf8乱码的问题
在控制台的属性里 修改自体为: 新宋体 在控制台下执行命令: chcp 65001
- 三、Java基础---------关于继承、构造函数、静态代码块执行顺序示例讲解
在上节博客中曾提到过类的继承,这篇文章主要是介绍类的继承.构造函数以及静态代码块的执行顺序. 首先接着分析在黑马基础测试中的一个关于继承的题目,题目描述如下: 声明类Person,包含2个成员变量:n ...
- Subversion简明手册--使用hook svn
使用 hook ,为了方便管理员 控制提交的过程 Subversion 提供了 hook 机制.当特定的 事件发生时,相应的 hook 会被调用, hook 其实就相当于特定 事件的处理函数.每个 h ...
- $.extend,$.fn.extend,$.fn的区别
jQuery.extend(object) 为jQuery类添加类方法,可以理解为添加静态方法.如: jQuery.extend({ min: function(a, b) { return a &l ...
- oracle的面试问题
1. Oracle跟SQL Server 2005的区别? 宏观上: 1). 最大的区别在于平台,oracle可以运行在不同的平台上,sql server只能运行在windows平台上,由于windo ...
- 程序员PC选购
程序员PC选购[转载] http://www.cnblogs.com/legendtao/p/4631150.html 好马配上好鞍,自然事半功倍.一台好的PC能给你更好的工作娱乐体验~~(卧槽,感觉 ...
- window7快捷键
新建文件夹:Shift +F10 松手 shift + w 两遍 Enter shift+F Enter