题目链接: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: 一个人的数论的更多相关文章

  1. BZOJ 3601 一个人的数论 ——莫比乌斯反演 高斯消元

    http://www.cnblogs.com/jianglangcaijin/p/4033399.html ——lych_cys 我还是太菜了,考虑一个函数的值得时候,首先考虑是否积性函数,不行的话就 ...

  2. BZOJ 3601 一个人的数论 (拉格朗日插值+莫比乌斯反演)

    题意 略 题解 orz Freopen的博客 CODE #pragma GCC optimize (3) #include <bits/stdc++.h> using namespace ...

  3. 【bzoj 3601】一个人的数论 (莫比乌斯反演+伯努利数)

    题解: (吐槽:网上题解那个不严谨猜测真是没谁了……关键是还猜得辣么准……) 直接化简到求和那一段: $f_{d}(n)=\sum_{t|n}\mu(t)t^{d}\sum_{i=1}^{\frac{ ...

  4. 【BZOJ】【2219】数论之神

    中国剩余定理+原根+扩展欧几里得+BSGS 题解:http://blog.csdn.net/regina8023/article/details/44863519 新技能get√: LL Get_yu ...

  5. Bzoj 3505: [Cqoi2014]数三角形 数论

    3505: [Cqoi2014]数三角形 Time Limits: 1000 ms  Memory Limits: 524288 KB  Detailed Limits   Description

  6. bzoj 3834 [Poi2014]Solar Panels 数论分块

    3834: [Poi2014]Solar Panels Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 367  Solved: 285[Submit] ...

  7. 「BZOJ 2440」完全平方数「数论分块」

    题意 \(T\)组数据,每次询问第\(k\)个无平方因子的数(\(1\)不算平方因子),\(T\leq 50,k\leq 10^9\) 题解 \(k\)的范围很大,枚举肯定不行,也没什么奇妙性质,于是 ...

  8. bzoj 2242 [SDOI2011]计算器(数论知识)

    Description 你被要求设计一个计算器完成以下三项任务: 1.给定y,z,p,计算Y^Z Mod P 的值: 2.给定y,z,p,计算满足xy≡ Z ( mod P )的最小非负整数: 3.给 ...

  9. bzoj 2226: [Spoj 5971] LCMSum 数论

    2226: [Spoj 5971] LCMSum Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 578  Solved: 259[Submit][St ...

随机推荐

  1. C# 语音识别

    利用微软操作系统自动的语音识别功能,读取信息. 1.  在项目中添加  ""  引用 2.  引入命名空间:   using SpeechLib; 3.   读取的代码: Spee ...

  2. zw版【转发·台湾nvp系列Delphi例程】HALCON HWindowX 02

    zw版[转发·台湾nvp系列Delphi例程]HALCON HWindowX 02 procedure TForm1.Button1Click(Sender: TObject);var img : H ...

  3. 【crunch bang】字体美化

    中文字体美化是个很讨厌的事情,无数初学者在这里面浪费了无数时间,做了无数没有意义的事情.但这也是不得不做的,我把 Debian/Ubuntu 所需要的中文字体美化操作步骤详细记录在这里,希望能节约大家 ...

  4. yii2开启session

    1.在写入session的页面. use yii\web\Session;$session = new Session;$session->open(); 2.在获取session的页面 use ...

  5. 改Bug总结

    [1]屏蔽取舍法 屏蔽取舍,即所谓与问题无关的前后“语境”完全可以忽略,首先屏蔽掉,再根据问题复现路径查看问题发生的区间,然后逐近锁定“病灶”,确定需要修改的目标. [2]追溯原形法 追溯原形,即需要 ...

  6. android 项目学习随笔二十(屏幕适配)

    1.图片适配 放入相同名称的资源文件,机器根据不同分辨率找相近的资源 240*320 ldpi 320*480 mdpi 480*800 hdpi 720*1280 xhdpi 2.布局适配 在不同的 ...

  7. 专为物联网开发的开源操作系统Contiki(转)

    专为物联网开发的开源操作系统Contiki(转)  (2012-04-19 15:31:09) 原文网址:http://blog.sina.com.cn/s/blog_6de000c201010z7n ...

  8. C#:控制WinForm界面的显示

    控制WinForm界面在屏幕的四个角落显示,具体代码中有说明: using System; using System.Collections.Generic; using System.Drawing ...

  9. [BIM]案例

    以下是中建三局BIM小组的项目,用以参考: BIM协同设计与质量控制 现实建筑物实体都是以三维空间状态存在,若用三维设计表达更具有优势.如复杂管综设计,一般情况下,二维AutoCAD设计是在建筑.结构 ...

  10. 清空html代码

    不要使用 $("XXX").html(""); 清空html代码块一般有两种方式: 1)非miniui等组件区块:$("#id").empt ...