BZOJ 5093: 图的价值 第二类斯特林数$O(n \log n)$
时间:2019-01-11
本文章向大家介绍BZOJ 5093: 图的价值 第二类斯特林数$O(n \log n)$,主要包括BZOJ 5093: 图的价值 第二类斯特林数$O(n \log n)$使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
简单题意
一个带标号的图的价值定义为每个点度数的次方的和。
个点的带标号的简单无向图的价值之和
题解
每个点只有标号之别,故只需要求出一个点的价值之和即可。
计算第二类斯特林数即可。
容斥原理可得:
化为EGF就行了。
AC Code:
#include<cstdio>
#include<cstring>
#include<cctype>
#include<algorithm>
#define maxn 600005
#define mod 998244353
#define LL long long
using namespace std;
int n,k;
const int inv2 = (mod + 1) / 2;
int w[maxn]={1},r[maxn],lg[maxn],wlen,inv[maxn]={1,1},fac[maxn]={1,1},invf[maxn]={1,1};
int Pow(int base,LL k)
{
int ret = 1;
for(;k;k>>=1,base=1ll*base*base%mod)
if(k&1)
ret = 1ll * ret * base % mod;
return ret;
}
void Init(int n)
{
for(wlen=1;n>=2*wlen;wlen<<=1);
for(int i=1,pw=Pow(3,(mod-1)/(2*wlen));i<=2*wlen;i++) w[i] = 1ll * w[i-1] * pw % mod;
for(int i=2;i<=2*wlen;i++)
lg[i] = lg[i>>1] + 1,
fac[i] = 1ll * fac[i-1] * i % mod,
inv[i] = 1ll * (mod - mod / i) * inv[mod % i] % mod,
invf[i] = 1ll * invf[i-1] * inv[i] %mod;
}
inline void NTT(int *A,int n,int tp)
{
int lgn = lg[n];
for(int i=1;i<n;i++) r[i] = (r[i>>1]>>1)|((i&1)<<(lgn-1));
for(int i=1;i<n;i++) if(i<r[i]) swap(A[i],A[r[i]]);
for(int L=2;L<=n;L<<=1)
for(int st=0,l=L>>1,inc=wlen/l;st<n;st+=L)
for(int k=st,x=0;k<st+l;k++,x+=inc)
{
int tmp = 1ll * (tp == 1 ? w[x] : w[2*wlen-x]) * A[k+l] % mod;
A[k+l] = (A[k] - tmp) % mod , A[k] = (A[k] + tmp) % mod;
}
if(
- Golang实现Fibonacii的几种算法
- 【译】使用 dotnet watch 开发 ASP.NET Core 应用
- vmware安装ubuntu12.04嵌套安装xen server(实现嵌套虚拟化)
- Golang语言切片slice的线程协程安全问题
- ASP.NET Core 在 Azure 开启 HTTPS
- 算法基础:最大递减数问题(Golang实现)
- 亲身经历的痛--database/sql: Stmt的使用以及坑
- Ubuntu上通过nginx部署Django笔记
- Go学习笔记:golang交叉编译
- Python魔术方法-Magic Method
- python类中super()和__init__()的区别
- Python正则表达式:最短匹配
- 转--Go时间格式化和类型互换操作
- Python标准库(1) — itertools模块
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- TypeScript 4.1 新特性:字符串模板类型,Vuex 终于有救了?
- TS 4.1 新特性实现 Vuex 无限层级命名空间的 dispatch 类型推断。
- egg.js踩坑记录(一)开始篇
- VUI创建日志(二)——防抖节流组件的实现
- 为你的VuePress博客添加GitTalk评论
- Go 中 Set 的实现方式
- Go 译文之词法分析与解析 Part Three
- React-Native踩坑记
- 【译】成为优秀程序员(和人类)的101个技巧
- 谈谈ES6语法(汇总中篇)
- 谈谈ES6语法(汇总下篇)
- [译] JS 中 service workers 的简介
- 【译】如何大大简化你的Vuex Store
- 挑选 npm 模块很费事?掌握这些技巧就能事半功倍!
- 【译】前端 VS 后端