bzoj5093: [Lydsy1711月赛]图的价值
不难想到考虑每个点的贡献,ans=n*sigema(1~n)i C(n-1,i)*(2^C(n-1,2))*i^k
直接套第二类斯特林拆柿子即可。提示:sigema(1~n)i C(n,i)*C(i,j) = C(n,j)*2^(n-j)
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long LL;
const int _=1e2;
const int maxK=2e5+_;
const int fbiK=(<<)+_;
const int mod=;
inline int ad(int x,int y){return (x>=mod-y)?(x-mod+y):x+y;}
inline int re(int x,int y){return (x<y)?(x-y+mod):x-y;}
inline int mu(int x,int y){return (LL)x*y%mod;}
inline int qp(int x,int y){int r=;while(y>){if(y&)r=mu(r,x);x=mu(x,x);y/=;}return r;} int fac[maxK],fac_inv[maxK],inv[maxK];
void yu(int K)
{
fac[]=;for(int i=;i<=K;i++)fac[i]=mu(fac[i-],i);
fac_inv[K]=qp(fac[K],mod-);
for(int i=K-;i>=;i--)fac_inv[i]=mu(fac_inv[i+],i+); inv[]=;for(int i=;i<=K;i++)inv[i]=mu(inv[mod%i],mod-mod/i);
} namespace GETS2
{
int Re[*fbiK];
void NTT(int *a,int n,int op)
{
for(int i=;i<n;i++)
if(i<Re[i])swap(a[i],a[Re[i]]);
for(int i=;i<n;i<<=)
{
int gn=qp(,(mod-)/(i<<));
if(op==-)gn=qp(gn,mod-);
for(int j=;j<n;j+=(i<<))
{
int g=;
for(int k=;k<i;k++,g=mu(g,gn))
{
int k1=a[j+k],k2=mu(a[j+k+i],g);
a[j+k]=ad(k1,k2);
a[j+k+i]=re(k1,k2);
}
}
}
if(op==-)
{
int inv=qp(n,mod-);
for(int i=;i<n;i++)a[i]=mu(a[i],inv);
}
}
int n,m,L,A[*fbiK],B[*fbiK],S2K[*fbiK];
void main(int K)
{
m=*K-;for(n=;n<=m;n<<=)L++;
for(int i=;i<n;i++)Re[i]=(Re[i>>]>>)|((i&)<<(L-)); for(int i=;i<=K;i++)
{
A[i]=mu((i&)?mod-:,fac_inv[i]);
B[i]=mu(qp(i,K),fac_inv[i]);
} NTT(A,n,),NTT(B,n,);
for(int i=;i<n;i++)S2K[i]=mu(A[i],B[i]);
NTT(S2K,n,-);
}
}
int S2[][];
void QWQ()
{
S2[][]=;
for(int i=;i<=;i++)
for(int j=;j<=i;j++)
S2[i][j]=ad(S2[i-][j-],mu(S2[i-][j],j));
} int main()
{
int n,K;
scanf("%d%d",&n,&K);yu(K);
GETS2::main(K);//QWQ(); using namespace GETS2;
int ans=,C=;
for(int j=;j<=K;j++)
{
C=mu(mu(C,n-j),inv[j]);
ans=ad(ans, mu( mu(S2K[j],fac[j]) , mu(C,qp(,n--j)) ) );
}
printf("%d\n", mu( mu(ans,n) , qp(,(LL)(n-)*(n-)/%(mod-)) ) ); return ;
}
bzoj5093: [Lydsy1711月赛]图的价值的更多相关文章
- BZOJ5093 [Lydsy1711月赛]图的价值 【第二类斯特林数 + NTT】
题目链接 BZOJ5093 题解 点之间是没有区别的,所以我们可以计算出一个点的所有贡献,然后乘上\(n\) 一个点可能向剩余的\(n - 1\)个点连边,那么就有 \[ans = 2^{{n - 1 ...
- bzoj 5093 [Lydsy1711月赛]图的价值 NTT+第二类斯特林数
[Lydsy1711月赛]图的价值 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 245 Solved: 128[Submit][Status][D ...
- 【bzoj5093】 [Lydsy1711月赛]图的价值 组合数+斯特林数+NTT
Description "简单无向图"是指无重边.无自环的无向图(不一定连通). 一个带标号的图的价值定义为每个点度数的k次方的和. 给定n和k,请计算所有n个点的带标号的简单无向 ...
- 【bzoj5093】[Lydsy1711月赛]图的价值(NTT+第二类斯特林数)
题意: 给定\(n\)个点,一个图的价值定义为所有点的度数的\(k\)次方之和. 现在计算所有\(n\)个点的简单无向图的价值之和. 思路: 将式子列出来: \[ \sum_{i=1}^n\sum_{ ...
- BZOJ 5093: [Lydsy1711月赛]图的价值
第二类斯特林数模版题 需要一些组合数的小$ trick$ upd:这里更新了本题巧妙的$ O(k)$做法,虽然常数很大就是了 传送门:here 题意:求所有$ n$个节点的无重边自环图的价值和,定义一 ...
- BZOJ 5093: [Lydsy1711月赛]图的价值 第二类斯特林数+NTT
定义有向图的价值为图中每一个点的度数的 \(k\) 次方之和. 求:对于 \(n\) 个点的无向图所有可能情况的图的价值之和. 遇到这种题,八成是每个点单独算贡献,然后累加起来. 我们可以枚举一个点的 ...
- bzoj5093:[Lydsy1711月赛]图的价值
题目 首先考虑到这是一张有标号的图,每一个点的地位是相等的,因此我们只需要求出一个点的价值和乘上\(n\)就好了 考虑一个点有多少种情况下度数为\(i\) 显然我们可以让除了这个点的剩下的\(n-1\ ...
- BZOJ 5093[Lydsy1711月赛]图的价值 线性做法
博主曾更过一篇复杂度为$O( k· \log k)$的多项式做法在这里 惊闻本题有$ O(k)$的神仙做法,说起神仙我就想起了于是就去学习了一波 幂与第二类斯特林数 推导看这里 $$ x^k=\sum ...
- BZOJ.5093.[Lydsy1711月赛]图的价值(NTT 斯特林数)
题目链接 对于单独一个点,我们枚举它的度数(有多少条边)来计算它的贡献:\[\sum_{i=0}^{n-1}i^kC_{n-1}^i2^{\frac{(n-2)(n-1)}{2}}\] 每个点是一样的 ...
随机推荐
- 使用Jsoup解决网页中图片链接问题
在做Facebook和WhatsApp分享的时候,分享出去的谷歌短链,Facebook获取不到大图,和竞品展示的不一样,WhatsApp分享出去的短链没有图片和描述. WhatsApp: 分析竞品UC ...
- 转: java服务器端成长指南
from: http://m.blog.csdn.net/article/details?id=45797155 前言 这是一份针对新手的服务端开发入门与进阶指南.遇到问题及时问你的 mentor ...
- setTag和findViewByTag的使用具体解释
在使用ListView或者GridView的时候. 假设想要在Aciviry中获取到Item中的子View,比較频繁的使用是:getChildAt(int position): 之前自己差点儿不会去使 ...
- 接口性能测试方案 白皮书 V1.0
一. 性能测试术语解释 1. 响应时间 响应时间即从应用系统发出请求开始,到客户端接收到最后一个字节数据为止所消耗的时间.响应时间按软件的特点再可以细分,如对于一个 C/S 软件的响应时间可以细分为网 ...
- 基于Wiremock创建Mock Service平台
转载:http://blog.csdn.net/liuchunming033/article/details/52399397 1.Wiremock工具介绍 一般开发项目都会分模块进行,比如都会把前端 ...
- Win7无法启动,缺少系统文件ecache.sys怎么办
网上下载ecache.sys这个文件放到System32目录下即可 http://www.wenjian.net/file/ecache.sys.html
- 获取服务器classes根路径
/** * 获取web应用路径 * @Description : 方法描述 * @Method_Name : getRootPath * @return * @return : String * @C ...
- iTunes备份注意
记住: 如果你有重要的信息在iTunes中无备份的话.那么开始不要同步了. 退出时,最好备份后在退出.
- D类功放基础简介
DAC和D类PA的开关时序是先开dac再开D类pa,先关D类pa再关dac
- URL Handle in Swift (二) — 响应链处理 URL
最后更新: Swift4时候的博客,以前在 CMD markdown 上编辑的,现在搬到这里 在上篇文章-URL Handle in Swift (一) -- URL 分解中,我们已经将URL进行了分 ...