BZOJ5093图的价值(斯特林数)

题目描述

“简单无向图”是指无重边、无自环的无向图(不一定连通)。
一个带标号的图的价值定义为每个点度数的k次方的和。
给定n和k,请计算所有n个点的带标号的简单无向图的价值之和。
因为答案很大,请对998244353取模输出。
题解
因为懒得敲公式了,所以就直接粘题解了。
我们发现在这张图中每个点都是等价的,所以我们就只需要考虑一个点的贡献,最后乘上n就可以了。
当一个点的度数为i时,我们可以从其他n-1个点中任意挑出i个点和它连边,而其余n-1个点之间可以任意连边。
然后我们发现后面那一坨和i无关,可以放到前面去,所以我们实际上是在求
然后ik这种东西有一个恒等式

 

S(k,i)为第二类斯特林数,意义为k个小球放入i个不同的盒子里的方案数。

等式的左边意义为把k个不同小球放到x个不同的盒子中的方案数。

右边是在枚举有哪些盒子里有球,还是比较好理解的。

那么我们把这个指数的东西代换完后式子变成了

把枚举j的sigma提前

后面的那个东西看起开很难受,如果我们可以把n和j放在一起,式子就可以往前放了。

从n个小球中选i个,再从i个中选j个等价于从n个小球中选j个,再从剩下的(n-j)个中选(i-j)个。

于是我们就可以吧C(n,j)提前了,后面的组合数可以直接用恒等式换掉。

然后我们只要求出所有S(k,j)就可以了,这个用NTT解决。

代码

#include<iostream>
#include<cstdio>
#define N 2000009
using namespace std;
typedef long long ll;
const int G=3;
const int Gi=332748118;
const int mod=998244353; 
ll l,L,a[N],b[N],jie[N],ni[N],nii[N],n,k,ans,c[N];
int rev[N];
ll power(ll x,ll y){if(y<0)return 0;ll ans=1;x%=mod;while(y){if(y&1)ans=ans*x%mod;x=x*x%mod;y>>=1;}ans=(ans+mod)%mod;return ans;
}
inline ll ny(ll x){return power(x,mod-2);}
inline ll C(ll n,ll m){return jie[n]*ni[m]%mod*ni[n-m]%mod;}
inline void NTT(ll *a,int tag){for(int i=0;i<l;++i)if(i>rev[i])swap(a[i],a[rev[i]]);for(int i=1;i<l;i<<=1){ll wn=power(tag==1?G:Gi,(mod-1)/(i<<1));for(int j=0;j<l;j+=(i<<1)){ll w=1;for(int k=0;k<i;++k,w=w*wn%mod){ll x=a[j+k],y=a[i+j+k]*w%mod;a[j+k]=(x+y)%mod;a[i+j+k]=(x-y+mod)%mod;}}}
}
int main(){
//    cout<<power(3,mod-2);scanf("%lld%lld",&n,&k);ll yu=n%mod*power(2,(n-1)*(n-2)/2)%mod;n--;jie[0]=1;for(int i=1;i<=k;++i)jie[i]=jie[i-1]*i%mod;ni[k]=power(jie[k],mod-2);for(int i=k-1;i>=0;--i)ni[i]=ni[i+1]*(i+1)%mod;for(int i=0;i<=k;++i)a[i]=(power(-1,i)*ni[i]+mod)%mod;for(int i=0;i<=k;++i)b[i]=power(i,k)*ni[i]%mod;l=1;L=0;while(l<=(k<<1))l<<=1,L++; for(int i=1;i<l;++i)rev[i]=(rev[i>>1]>>1)|((i&1)<<(L-1));NTT(a,1);NTT(b,1);for(int i=0;i<l;++i)a[i]=a[i]*b[i]%mod;NTT(a,-1);ll nn=ny(l);c[0]=1;for(int i=1;i<=min(k,n);++i)c[i]=c[i-1]*ny(i)%mod*(n-i+1)%mod;for(int i=0;i<=k;++i){a[i]=a[i]*nn%mod;(ans+=a[i]*jie[i]%mod*c[i]%mod*power(2,n-i)%mod)%=mod;}ans=ans*yu%mod;cout<<ans;return 0;
}

 

 

 

转载于:https://www.cnblogs.com/ZH-comld/p/10256947.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365933.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重写override

不可重写私有方法。 不可重写非静态的方法&#xff0c;虽然编译器不会报错&#xff0c;但是得不到预期的结果。 可以通过重写的形式对父类的功能进行重新定义&#xff0c;比如&#xff1a;对功能进行修改或者进行升级时。 class BaseAction {public void showMsg(){System.out.…

python程序写诗_用Python作诗,生活仍有诗和远方

原标题&#xff1a;用Python作诗&#xff0c;生活仍有诗和远方 报 名 来源&#xff1a;TheodoreXu链接&#xff1a; https://segmentfault.com/a/1190000013154329 常听说&#xff0c;现在的代码&#xff0c;就和唐朝的诗一样重要。 可对我们来说&#xff0c;写几行代码没什么&…

华为鸿蒙手机beta版,鸿蒙2.0 Beta手机版来了!明年将全面支持华为手机

读创/深圳商报记者陈 姝备受关注的华为鸿蒙操作系统(HarmonyOS&#xff0c;以下简称鸿蒙)有了新进展。华为消费者业务软件部总裁王成录日前透露&#xff0c;将于12月16日在北京发布鸿蒙2.0手机开发者Beta版本。王成录在12月14日发微博称&#xff1a;“HarmonyOS正沿着我们在HDC…

Spring LDAP 2.0.0发布

Spring团队很高兴宣布Spring LDAP 2.0.0已发布&#xff0c;并且现在可以从Maven Central和Bintray获得。 Spring LDAP 2.0.0.RELEASE Released列出了新发行版中的所有更改。 JIRA的更改日志也包含更改列表。 以下介绍了2.0.0版本的最基本功能&#xff1a; Spring LDAP现在包括…

Django 路由层

Django的下载与基本命令 下载Django&#xff1a;pip3 install django2.0.1创建一个django project: django-admin startproject luffy在mysite目录下创建应用&#xff1a;python manage.py startapp app01启动django项目:python manage.py runserver 8080 我们访问&#xff1a;…

seajs-require使用示例

<script type"text/javascript">define([js/b],[],function(require) {//定义B模块,id为js/bvar o{b: B模块};return o; })define([js/a],[],function(require) {//定义a模块var o{a: require(js/b)//引用js/b模块id&#xff0c;而不是文件};return o; })seajs…

caffe安装_目标检测之caffe-ssd模型训练与测试

最近把一个ssd网络的net..prototxt网络结构和自己生成的hdf5格式数据一起做训练时发现经常报错&#xff0c;因为ssd中一些层在caffe中并没有实现&#xff0c;需要自己写相应的.cpp,.cu文件重新编译&#xff0c;比较麻烦&#xff0c;而大家通常训练caffe-ssd都是基于原作者公开的…

Python之classmethod和staticmethod的区别

python中3种方式定义类方法&#xff0c;常规方式、classmethod修饰方式、staticmethod修饰方式。 class A(object):def foo(self, x):print(调用foo函数 (%s, %s)%(self, x))print(self:, self)classmethoddef class_foo(cls, x):print(调用class_foo函数 (%s, %s) % (cls, x))…

android 字符串反转,Golang之字符串操作(反转中英文字符串)

//字符串反转package mainimport "fmt"func reverse(str string) string {var result stringstrLen : len(str)for i : ; i < strLen; i {result result fmt.Sprintf("%c", str[strLen-i-])}return result}func reverse1(str string) string {var res…

Spring Integration Publisher

考虑一个假设的要求–您的应用程序中有一个服务类&#xff0c;并且想要捕获有关此服务调用的一些信息&#xff1a; Service public class SampleBean {private static final Logger logger LoggerFactory.getLogger(SampleBean.class);public Response call(Request request)…

POJ - 1125(Stockbroker Grapevine)

Stockbroker Grapevine 题目链接&#xff1a; http://poj.org/problem?id1125 题目&#xff1a; Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 39459 Accepted: 22024Description Stockbrokers are known to overreact to rumours. You have been contracted t…

php开发微信图灵机器人

本着开源为原则&#xff0c;为这个世界更美好作出一份共享&#xff0c;我就给大家做个指路人&#xff0c;如果实用&#xff0c;记得给提供开源的朋友一些鼓励。 简单介绍一下实现思路&#xff0c;使用swoole扩展接管php运行&#xff0c;由于swoole只能在类UNIX上运行&#xff0…

jQuery源码的基础知识

序言&#xff1a;DOM addEventListener attachEvent与addEventListener区别适应的浏览器版本不同&#xff0c;同时在使用的过程中要注意attachEvent方法 按钮onclickaddEventListener方法 按钮click一、arguments对象&#xff1a; 1、arguments 属性 为当前执行…

python如何读取数据并输出为表格_Python实现将数据库一键导出为Excel表格的实例...

数据库数据导出为excel表格&#xff0c;也可以说是一个很常用的功能了。毕竟不是任何人都懂数据库操作语句的。 下面先来看看完成的效果吧。 数据源导出结果依赖 由于是Python实现的&#xff0c;所以需要有Python环境的支持 Python2.7.11 我的Python环境是2.7.11。虽然你用的可…

android手机连接无线路由器上网设置,手机连接无线网络怎么设置?手机Wifi无线网设置教程...

随着智能手机无线上网的流行&#xff0c;如今很多家庭都会组建Wifi无线网络&#xff0c;目前组建Wifi网络&#xff0c;大致有两种情况&#xff0c;一种是使用无线路由器&#xff0c;另外一种是将笔记本变身无线无路由器&#xff0c;从而实现智能手机也可以免费Wifi上网&#xf…

Spring XD 1.0.0.M5在这里!

Spring XD宣布发布Spring XD 1.0.0.Milestone 5 。 您可以从这里下载。 根据发布的Spring XD 1.0.0.M5 &#xff0c;Spring XD是用于实时分析&#xff0c;批处理&#xff0c;数据注入和数据导出的统一&#xff0c;分布式和可扩展系统。 1.0.0.Milestone 5版本提供了解决大数据问…

通俗易懂了解Vuex

1.前言 在使用Vue进行开发的时候&#xff0c;关于vue组件通信的方式&#xff0c;除了通俗易懂了解Vue组件的通信方式这篇博文谈到三种通信方式&#xff0c;其实vue更提倡我们使用vuex来进行组件间的状态管理以及通信问题。Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。…

jQuery源码分析

(function( window, undefined ) {// jquery code})(window);这是一个自调用匿名函数。什么东东呢&#xff1f;在第一个括号内&#xff0c;创建一个匿名函数&#xff1b;第二个括号&#xff0c;立即执行为什么要创建这样一个“自调用匿名函数”呢&#xff1f; 通过定义一个匿名…

netcore 内存限制_.NET Core 和 Serverless 构建飞速发展的架构

(给DotNet加星标&#xff0c;提升.Net技能)英文&#xff1a;samueleresca.net译文&#xff1a;cnblogs.com/Rwing/p/fast-growing译者&#xff1a;Rwing本篇文章的第一部分介绍了有关Serverless计算的基本概念。第二部分展示了如何构建 .NET Core的Lambda函数&#xff0c;其中使…

更多Requests的小技巧以及总结

对于requests的爬虫库&#xff0c;我们已经学到了尾声。 我们在这儿可以挖掘出更多的requests的使用小技巧。 一.cookie对象与字典的转换 在爬取目标cookie的时候&#xff0c;我们可以将cookie信息进行简化处理。 现在做一个简单的代码验证看看&#xff0c;使用百度的cookies&a…