【TC_SRM697 Hard】【JZOJ5180】ConnectedStates 题解
来源:互联网 发布:js缺少对象 编辑:程序博客网 时间:2024/05/22 12:23
题目大意
题解
代码
#include<cstdio>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using namespace std;typedef long long LL;const int maxn=2005;const LL mo=1e9+7;int n,w[maxn];LL sumw,prow=1;LL fac[maxn],ny[maxn],f[maxn][maxn];LL mi(LL x,LL y){ LL re=1; for(; y; y>>=1, x=x*x%mo) if (y&1) re=re*x%mo; return re;}void Pre(){ fac[0]=ny[0]=1; fo(i,1,n) fac[i]=fac[i-1]*i%mo; ny[n]=mi(fac[n],mo-2); fd(i,n-1,1) ny[i]=ny[i+1]*(i+1)%mo; f[0][0]=1; fo(i,1,n) fo(j,0,i) { f[i][j]=f[i-1][j]; if (j) (f[i][j]+=f[i-1][j-1]*w[i])%=mo; }}int main(){ scanf("%d",&n); fo(i,1,n) { scanf("%d",&w[i]); if (!w[i]) {printf("0\n"); return 0;} (sumw+=w[i])%=mo; (prow*=w[i])%=mo; } Pre(); LL ans=0; fo(k,0,n-2) (ans+=f[n][k]*mi(sumw,n-2-k)%mo*ny[n-2-k])%=mo; printf("%lld\n",ans*prow%mo*fac[n-2]%mo);}
阅读全文
0 0
- 【TC_SRM697 Hard】【JZOJ5180】ConnectedStates 题解
- E - A very hard mathematic problem题解
- SRM 664 hard BearSorts题解搬运
- 【JZOJ5180】【NOI2017模拟6.29】呵呵
- [Prufer序列推论] SRM 697 div1 ConnectedStates
- Leetcode题解14 84. Largest Rectangle in Histogram(hard)
- LeetCode[126.Word Ladder II]题解 难度[hard]
- 【搬自TC_SRM583 Hard】【JZOJ4844】抗拒黄泉 题解
- 【POJ3155】【网络流】【最大密度子图】Hard Life 题解
- 题解——Leetcode 312. Burst Balloons 难度:Hard
- hard
- HDU-1097 A hard puzzle 题解以及关于超时问题的处理
- 题解
- 题解
- 题解
- 题解
- 题解
- 题解
- python常用模块(不定时更新)
- Linux字符设备驱动程序开发(3)-LED驱动程序设计
- 前端开发——HTML学习笔记
- Hive 与 Hbase的不同之处
- shell基础
- 【TC_SRM697 Hard】【JZOJ5180】ConnectedStates 题解
- 六月英语纪实
- 关于for循环的执行效率问题
- JZOJ 5186. 【NOIP2017提高组模拟6.30】tty's home
- 【Java线程】锁机制:synchronized、Lock、Condition
- 大数据与时间
- Spark核心编程:高级编程之二次排序
- 如何完整的安装Cygwin
- CodeForces 478C (贪心)