不难想到考虑每个点的贡献,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月赛]图的价值的更多相关文章

  1. BZOJ5093 [Lydsy1711月赛]图的价值 【第二类斯特林数 + NTT】

    题目链接 BZOJ5093 题解 点之间是没有区别的,所以我们可以计算出一个点的所有贡献,然后乘上\(n\) 一个点可能向剩余的\(n - 1\)个点连边,那么就有 \[ans = 2^{{n - 1 ...

  2. bzoj 5093 [Lydsy1711月赛]图的价值 NTT+第二类斯特林数

    [Lydsy1711月赛]图的价值 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 245  Solved: 128[Submit][Status][D ...

  3. 【bzoj5093】 [Lydsy1711月赛]图的价值 组合数+斯特林数+NTT

    Description "简单无向图"是指无重边.无自环的无向图(不一定连通). 一个带标号的图的价值定义为每个点度数的k次方的和. 给定n和k,请计算所有n个点的带标号的简单无向 ...

  4. 【bzoj5093】[Lydsy1711月赛]图的价值(NTT+第二类斯特林数)

    题意: 给定\(n\)个点,一个图的价值定义为所有点的度数的\(k\)次方之和. 现在计算所有\(n\)个点的简单无向图的价值之和. 思路: 将式子列出来: \[ \sum_{i=1}^n\sum_{ ...

  5. BZOJ 5093: [Lydsy1711月赛]图的价值

    第二类斯特林数模版题 需要一些组合数的小$ trick$ upd:这里更新了本题巧妙的$ O(k)$做法,虽然常数很大就是了 传送门:here 题意:求所有$ n$个节点的无重边自环图的价值和,定义一 ...

  6. BZOJ 5093: [Lydsy1711月赛]图的价值 第二类斯特林数+NTT

    定义有向图的价值为图中每一个点的度数的 \(k\) 次方之和. 求:对于 \(n\) 个点的无向图所有可能情况的图的价值之和. 遇到这种题,八成是每个点单独算贡献,然后累加起来. 我们可以枚举一个点的 ...

  7. bzoj5093:[Lydsy1711月赛]图的价值

    题目 首先考虑到这是一张有标号的图,每一个点的地位是相等的,因此我们只需要求出一个点的价值和乘上\(n\)就好了 考虑一个点有多少种情况下度数为\(i\) 显然我们可以让除了这个点的剩下的\(n-1\ ...

  8. BZOJ 5093[Lydsy1711月赛]图的价值 线性做法

    博主曾更过一篇复杂度为$O( k· \log k)$的多项式做法在这里 惊闻本题有$ O(k)$的神仙做法,说起神仙我就想起了于是就去学习了一波 幂与第二类斯特林数 推导看这里 $$ x^k=\sum ...

  9. BZOJ.5093.[Lydsy1711月赛]图的价值(NTT 斯特林数)

    题目链接 对于单独一个点,我们枚举它的度数(有多少条边)来计算它的贡献:\[\sum_{i=0}^{n-1}i^kC_{n-1}^i2^{\frac{(n-2)(n-1)}{2}}\] 每个点是一样的 ...

随机推荐

  1. MySQL主库异常,从库手动切换为主库方案

    主库异常,从库手动切换为主库方案 1.登录从服务器,确认从服务器已经完成所有同步操作: mysql> stop slave io_thread mysql> show processlis ...

  2. mootools客户端框架

    mootools客户端框架 学习:http://www.chinamootools.com/ 官网:https://mootools.net/ 下载地址: https://github.com/moo ...

  3. vue.js+koa2项目实战(六)数据库建表

    数据库建表 1.打开 MySQL 终端 2.查看所有数据库 show databases 3.创建数据库 create database pet 4.进入数据库 use pet 5.创建数据表 cre ...

  4. Oracle 查询一个表的所有字段

    select * from user_tab_columns where table_name = 'T_B_CLIENT_MSG'

  5. Linux系统下授权MySQL账户访问指定数据库和数据库操作

    Linux系统下授权MySQL账户访问指定数据库 需求: 1.在MySQL中创建数据库mydata 2.新建MySQL账户admin密码123456 3.赋予账户admin对数据库mydata具有完全 ...

  6. deeplearning.net 0.1 document - Multilayer Perceptron

    Multilayer Perceptron 以下我们使用Theano来介绍一下单隐藏层的多层感知机(MLP).MLP能够看成一个logistic回归分类器,它使用一个已经学习的非线性转换器处理输入.这 ...

  7. xcode常见报错调试【原创】

    BMKGeoCodeSearch 反向地理编码一直失败 Location 申请的key的安全码与代码中build id不一样,修改成一样就OK了 新建一个类,将百度地图的定位功能封装起来以后,定位的代 ...

  8. Excel COM组件使用的注意事项和一些权限问题(转载)

    1.实例化Excel的COM组件的时候,不要直接调用类,要用Microsoft提供的接口 原来的写法:Excel.ApplicationClass excelApp = new Excel.Appli ...

  9. ios和mac开发 学习资料

    1.WWDC14 Session 409 学习笔记: http://url.cn/Ju2Yt5 2..WWDC14 Session 4092学习笔记: http://url.cn/Rx0mAN 3.i ...

  10. iOS判断为空或者只为空格

    本文转载至 :http://www.cnblogs.com/superhappy/archive/2012/11/08/2761403.html 经常有需求 要判断不能为空,后台老是鄙视不做非空判断的 ...