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 ...
随机推荐
- delphi 读取excel 两种方法
http://www.cnblogs.com/ywangzi/archive/2012/09/27/2705894.html 两种方法,一是用ADO连接,问题是Excel文件内容要规则,二是用OLE打 ...
- 超链接点击后不显示hover
超链接访问过后 hover 样式就不出现了,被点击访问过的超链接样式不在具有 hover 和 active 了 解决方法:改变CSS属性的排列顺序 L-V-H-A a:link {} a:visite ...
- 搞笑的u盘图片
- Debian下配置网络的方法
1.网络配置 配置网卡修改 /etc/network/interfaces 添加如下 # #号后面是备注,不要添加哦! auto eth0 #开机自动激活 iface eth0 inte static ...
- ueditor .NET版本提示uploader、Config类同时存在于两个dll中
在网上查看了下,主要有两种解决办法 1.直接删除,以下引用. <%@ Assembly Src="Uploader.cs" %><%@ Assembly Src= ...
- 161117、使用spring声明式事务抛出 identifier of an instance of
今天项目组有成员使用spring声明式事务出现下面异常,这里跟大家分享学习下. 异常信息: org.springframework.orm.hibernate3.HibernateSystemExce ...
- JVM学习笔记(四)------内存调优【转】
转自:http://blog.csdn.net/cutesource/article/details/5907418 版权声明:本文为博主原创文章,未经博主允许不得转载. 首先需要注意的是在对JVM内 ...
- Volley Get Post 方法
Get String url = CommonInterfaceUrl.COMM_GetWorksDetailUrl + "/" + worksID; RequestQueue m ...
- PRINCE2七大原则(2)
PRINCE2七大原则(2) 我们先来回顾一下,PRINCE2七大原则分别是持续的业务验证,经验学习,角色与责任,按阶段管理,例外管理,关注产品,剪裁. 第二个原则:吸取经验教训. PRINCE2要求 ...
- python实现删除文件与目录的方法
os.remove(path) 删除文件 path. 如果path是一个目录, 抛出 OSError错误.如果要删除目录,请使用rmdir().os.rmdir()只能删除空目录 remove() 同 ...