[bzoj5093][第二类斯特林数][NTT]图的价值

ArcGIS新手必看:5分钟搞定等高线转DEM栅格(附完整操作截图) 本文详细介绍了在ArcGIS中将等高线转换为DEM栅格的完整流程,包括CAD数据预处理、TIN转栅格和直接插值法两种核心方法,以及常见问题排查与优化技巧。通过实战案例和操作截图,帮助GIS新手快速掌握这一测绘数据处理的核心技能,提升地形分析和三维可视化效率。 阅读详情

Description

“简单无向图”是指无重边、无自环的无向图(不一定连通)。 一个带标号的图的价值定义为每个点度数的k次方的和。
给定n和k,请计算所有n个点的带标号的简单无向图的价值之和。 因为答案很大,请对998244353取模输出。

Input

第一行包含两个正整数n,k(1<=n<=10^9,1<=k<=200000)。

Output

输出一行一个整数,即答案对998244353取模的结果。

Sample Input

6 5

Sample Output

67584000

题解

一般都要单独考虑一个点的贡献
显然这个点的贡献是独立的,最后乘一个n就可以
那单独一个点的贡献就是
∑ i = 1 n − 1 C n − 1 i ∗ 2 ( n − 1 ) ( n − 2 ) 2 ∗ i k \sum_{i=1}^{n-1}C_{n-1}^i*2^{\frac{(n-1)(n-2)}{2}}*i^k i=1∑n−1​Cn−1i​∗22(n−1)(n−2)​∗ik
2的次幂是常数,提到前面去,把n减一,显然我们只需要算
∑ i = 1 n C n i ∗ i k \sum_{i=1}^nC_{n}^{i}*i^k i=1∑n​Cni​∗ik
根据第二类斯特林数的性质,我们可以知道
∑ i = 1 n C n i ∑ j = 0 m i n ( i , k ) S ( k , j ) ∗ j ! ∗ C i j \sum_{i=1}^nC_{n}^{i}\sum_{j=0}^{min(i,k)}S(k,j)*j!*C_{i}^{j} i=1∑n​Cni​j=0∑min(i,k)​S(k,j)∗j!∗Cij​
乘法分配律一下,显然可以把斯特林数提前
∑ i = 0 m i n ( n , k ) S ( k , i ) ∗ i ! ∗ ∑ j = i n C n j ∗ C j i \sum_{i=0}^{min(n,k)}S(k,i)*i!*\sum_{j=i}^{n}C_n^j*C_{j}^{i} i=0∑min(n,k)​S(k,i)∗i!∗j=i∑n​Cnj​∗Cji​
后面的式子的意义就是在n中选i个数,其它可选可不选,所以就是
∑ i = 0 m i n ( n , k ) S ( k , i ) ∗ i ! ∗ C n i ∗ 2 n − i \sum_{i=0}^{min(n,k)}S(k,i)*i!*C_{n}^{i}*2^{n-i} i=0∑min(n,k)​S(k,i)∗i!∗Cni​∗2n−i
现在就是要算前面的斯特林数了
可以容斥然后NTT n l o g n nlogn nlogn求,点一下这里就知道啦

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<queue>
#include<vector>
#include<ctime>
#include<map>
#include<bitset>
#define LL long long
#define mp(x,y) make_pair(x,y)
#define pll pair<long long,long long>
#define pii pair<int,int>
using namespace std;
inline LL read()
{
	LL f=1,x=0;char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
	return x*f;
}
int stack[20];
inline void write(int x)
{
	if(x<0){putchar('-');x=-x;}
    if(!x){putchar('0');return;}
    int top=0;
    while(x)stack[++top]=x%10,x/=10;
    while(top)putchar(stack[top--]+'0');
}
inline void pr1(int x){write(x);putchar(' ');}
inline void pr2(int x){write(x);putchar('\n');}
const LL mod=998244353;
const int MAXN=200005;
LL pow_mod(LL a,LL b)
{
	LL ret=1;
	while(b)
	{
		if(b&1)ret=ret*a%mod;
		a=a*a%mod;b>>=1;
	}
	return ret;
}
LL A[MAXN*4],B[MAXN*4];
int R[MAXN*4],L;
void NTT(LL *y,int len,int on)
{
	for(int i=0;i<len;i++)if(i<R[i])swap(y[i],y[R[i]]);
	for(int i=1;i<len;i<<=1)
	{
		LL wn=pow_mod(3,(mod-1)/(i*2));if(on==-1)wn=pow_mod(wn,mod-2);
		for(int j=0;j<len;j+=(i<<1))
		{
			LL w=1;
			for(int k=0;k<i;k++)
			{
				LL u=y[j+k];
				LL v=y[j+k+i]*w%mod;
				y[j+k]=(u+v)%mod;
				y[j+k+i]=(u-v+mod)%mod;
				w=w*wn%mod;
			}
		}
	}
	if(on==-1)
	{
		LL temp=pow_mod(len,mod-2);
		for(int i=0;i<len;i++)y[i]=y[i]*temp%mod;
	}
}
int n,K;
LL pre[MAXN],inv[MAXN];
LL C[MAXN];
void init()
{
	C[0]=1;LL temp=1;
	for(int i=1;i<=min(n,K);i++)
	{
		temp=temp*(n-i+1)%mod;
		temp=temp*pow_mod(i,mod-2)%mod;
		C[i]=temp;
	}
}
int main()
{
	pre[0]=1;for(int i=1;i<=MAXN-5;i++)pre[i]=pre[i-1]*i%mod;
	inv[MAXN-5]=pow_mod(pre[MAXN-5],mod-2);
	for(int i=MAXN-6;i>=0;i--)inv[i]=inv[i+1]*(i+1)%mod;
	n=read();K=read();n--;
	init();
	int ln;
	for(ln=1;ln<=2*K;ln<<=1)L++;
	for(int i=0;i<ln;i++)R[i]=(R[i>>1]>>1)|(i&1)<<(L-1);
	int temp=-1;
	for(int i=0;i<=K;i++)
	{
		temp*=-1;
		A[i]=temp*inv[i]%mod;
		LL u1=pow_mod(i,K),u2=inv[i];
		B[i]=u1*u2%mod;
	}
	NTT(A,ln,1);NTT(B,ln,1);
	for(int i=0;i<ln;i++)A[i]=A[i]*B[i]%mod;
	NTT(A,ln,-1);
	LL ans=0;
	for(int i=0;i<=min(n,K);i++)
	{
		LL re=A[i]*pre[i]%mod*C[i]%mod*pow_mod(2,n-i)%mod;
		ans=(ans+re)%mod;
	}
	ans=ans*(n+1)%mod*pow_mod(2,(LL)(n)*(n-1)/2)%mod;
	pr2(ans);
	return 0;
}

泰森多面体Voronoi 3D-V5.0 功能介绍 Abaqus Voronoi3D 阅读详情

相关推荐

【微知】关于GB200 NVL72服务器的一些信息?(36CPU72GPU;LPDDR5X 17T;HBM3e 13.5T;5代NVlink 1.8TB; 720P算力FP8;120Kw)

本文仅根据官网介绍分析,存在纰漏仅供参考。

技术札记 5385

bzoj 5093:[Lydsy1711月赛]图的价值 ntt

Description “简单无向图”是指无重边、无自环的无向图(不一定连通)。 一个带标号的图的价值定义为每个点度数的k次方的和。 给定n和k,请计算所有n个点的带标号的简单无向图的价值之和。 因为答案很大,请对998244353取模输出。 Input 第一行包含两个正整数n,k(1&lt;=n&lt;=10^9,1&lt;=k&lt;=200000)。 Output 输出一行一个整数,即答案对...

liangzihao1的博客 316

[QMT量化交易小白入门]-七十一、十年回测ETF动量策略,超额年化收益率为10.6%

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1854

第二类Stirling数(第二类斯特林数)

第二类Stirling数(第二类斯特林数) 定义 第二类Stirling数表示把nnn个不同的数划分为mmm个集合的方案数,要求不能为空集,写作S(n,m)S(n,m)S(n,m). 和第一类Stirling数不同,划分集合不必考虑排列次序。 递推式 考虑S(n,m)S(n,m)S(n,m)可以由什么转移得到? 1、S(n−1,m−1)S(n-1,m-1)S(n−1,m−1),将n−1n...

ZSJZ_liuzian的博客 1万+

LDRA Testbed软件静态分析_操作指南

从本文起,将开始LDRA Testbed(TBrun)教程的系列文章,包括软件静态分析、单元测试、集成测试,以及基于Testbed的自动化工具开发、持续集成、常见问题解答等。LDRA公司是专业的软件测试工具与测试技术、咨询服务提供者,其总部位于英国利物浦。其旗舰产品Testbed/TBrun功能全面、易于使用,不仅适合于主机平台软件测试,同时适合于嵌入式软件测试。不仅能进行软件静态测试,还能进行软件单元测试、软件集成测试,在白盒测试领域运用比较广泛。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 1万+

【TC3xx芯片】TC3xx DMA模块详解

TC3xx DMA模块详解

qq_36056498的博客 5917

【组合数学】第二类斯特林数

一、定义 第二类Stirling数即:,又可记为[与第一类的表示有大小写的区别]。其表示将n个不同的元素分成m个集合的方案数。 二、理解关键词句 1.集合的一个拆分(表示将n个不同的元素拆分成m个集合的方案数) 2.dp[n][m] = m*dp[n-1][m] + dp[n-1][m-1] (dp[n][m]表示n个元素划分为m个集合的方案数) 2.1对于第n个元素,如果前面的n-1

BlessingXRY的博客 2779

jeecg-boot getDictItemsByTable接口存在SQL注入漏洞CVE-2024-48307

微信公众号搜索:南风漏洞复现文库该文章 南风漏洞复现文库 公众号首发JeecgBoot 是一款开源的的低代码开发平台。

nnn2188185的博客 330

第二类斯特林数

{n,k}表示将n个两两不同的元素划分成k个非空子集的方案数 注意:不需要排序,因为集合无序 假设已知{n-1,k-1}和{n-1,k} 同样的,有两种情况 1:n单独作为集合,结果为{n-1,k-1} 2:n放入之前的集合,结果为(k){n-1,k} 性质: {n,0}=0 {n,1}=1 {n,n}=1 {n,2}=2^(n-1)-1 {n,n-1}=C(n,2) {n,n-2}=C(n,3)+3C(n,4) 第二类斯特林数有通项公式: {n,m}=(1/m!)*(k从0累加到m)(-1)^k * C(

fdxgcw的博客 1403

【数字孪生与仿真技术】05:从原理到实战:MATLAB/Simulink在航空航天GNC系统开发中的深度解析(含全流程代码与认证指南)

摘要:本文系统阐述MATLAB/Simulink在航空航天制导、导航与控制(GNC)系统开发中的核心应用。通过解析GNC系统高保真动力学建模、多源导航传感器融合、鲁棒控制算法设计等关键技术原理,结合Virgin Orbit运载火箭、CubeSat等真实案例,展示从需求分析、模型搭建、仿真验证到代码生成与认证的完整开发流程。文中提供1200余行关键代码、8个可复用Simulink模型及详细执行结果展示,涵盖DO-178C认证支持、实时性能优化等工业级开发规范,为航空航天工程师、科研人员提供可落地的参考方案。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1656

Autosar诊断实战系列05-Dcm之0x27加解密服务配置开发详解

UDS 0x27服务实战开发介绍,对解锁尝试次数及delay时间进一步解释。

initiallizer的博客 1992

组合数学 —— 斯特林数(Stirling)

【第一类斯特林数】 1.定理 第一类斯特林数 S1(n,m) 表示的是将 n 个不同元素构成 m 个圆排列的数目。 2.递推式 设人被标上1,2,.....p,则将这 p 个人排成 m个圆有两种情况: 在一个圆圈里只有标号为 p 的人自己,排法有 S1(n-1,m-1) 个。 p 至少和另一个人在一个圆圈里。 这些排法通过把 1,2....n-1 排成 m 个圆再把 n 放在 1,2...

Alex_McAvoy的博客 2万+

五步教你用GPT-5画出国自然技术路线图!轻松节省80%画图时间(附AI提示词)

七哥给大家推荐的高校都在用的AI平台——高级学术版专业应用平台,集成了ChatGPT、Claude、Gemini、Grok等Al大模型的PLUS版本平台,包括 ChatGPT-5、4o、o3、4.1、4.5、Gemini 2.5 Pro、Claude 3.7、Claude 4、DeepSeek 满血版、Grok 3 、Grok 4等原生线路,还有国际主流的GPTs学术应用,可以辅助大家高效完成科研和学术写作任务,当然撰写硕博论文,课题、职称论文、国社科、国自然基金本子也是手拿把掐。

智能AI让学术科研更容易 1497

【BZOJ5093】图的价值(第二类斯特林数,组合数学,NTT)

【BZOJ5093】图的价值(第二类斯特林数,组合数学,NTT) 题面 BZOJ 题解 单独考虑每一个点的贡献: 因为不知道它连了几条边,所以枚举一下 \[\sum_{i=0}^{n-1}C_{n-1}^i·i^k·2^{\frac{n(n-1)}{2}}\] 因为有\(n\)个点,所以还要乘以一个\(n\) 所以,我们真正要求的就是: \[\sum_{i=0}^{n-1}C_{n-1}^i·i^...

weixin_30624825的博客 107

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

bzoj 5093: 图的价值 NTT+数学+第二类斯特林数

题意 “简单无向图”是指无重边、无自环的无向图(不一定连通)。 一个带标号的图的价值定义为每个点度数的k次方的和。 给定n和k,请计算所有n个点的带标号的简单无向图的价值之和。 因为答案很大,请对998244353取模输出。 1 分析 枚举每个点和每个点连出去的边的数量,总共有n-1个点可以连,然后剩下的边连不连都可以。不难分析出ans=n∗2(n−1)∗(n−2)2∗∑i=0n

beginend 2726

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

Description “简单无向图”是指无重边、无自环的无向图(不一定连通)。 一个带标号的图的价值定义为每个点度数的k次方的和。 给定n和k,请计算所有n个点的带标号的简单无向图的价值之和。 因为答案很大,请对998244353取模输出。 Solution 考虑每个点的贡献,容易得到如下式子:ans=n×2n(n−1)2−n+1∑i=1n−1Cn−1iikans=n\times2^{{n(n-...

TYB的博客 459

bzoj 5093 图的价值 —— 第二类斯特林数+NTT

题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5093 每个点都是等价的,从点的贡献来看,得到式子: \( ans = n * \sum\limits_{d=0}^{n-1} d^{k} * 2^{C_{n-1}^{2}} * C_{n-1}^{d} \) 使用 \( n^{k} = \sum\limits_{i=0}^{k...

aodan5477的博客 272

bzoj5093:图的价值(第二类斯特林数+NTT)

传送门 首先,题目所求为\[n\times 2^{C_{n-1}^2}\sum_{i=0}^{n-1}C_{n-1}^ii^k\] 即对于每个点\(i\),枚举它的度数,然后计算方案。因为有\(n\)个点,且关于某个点连边的时候剩下的边都可以随便连,所以有前面的两个常数 所以真正要计算的是\[\sum_{i=0}^{n-1}C_{n-1}^ii^k\] 根据第二类斯特林数的性质,有\[i^k=\s...

weixin_30480651的博客 119

【BZOJ5093】图的价值(第二类斯特林数,NTT)

Description “简单无向图”是指无重边、无自环的无向图(不一定连通)。 一个带标号的图的价值定义为每个点度数的k次方的和。 给定n和k,请计算所有n个点的带标号的简单无向图的价值之和。 因为答案很大,请对998244353取模输出。 Solution 容易得到题目就是要求: n×2(n−1)(n−2)2∑i=0n−1(n−1i)ikn×2(n−1)(n−2)2∑i=0n−1...

დ♂Hany01's Blog Space♂ღ 352

bzoj5093 图的价值【第二类斯特林数+NTT】

解题思路: 考虑直接枚举每个点连的边,图中其余点之间随便连,那么直接推式子: ans=n∗2C2n−1∑i=0n−1Cin−1ikans=n*2^{C_{n-1}^2}\sum\limits_{i=0}^{n-1}C_{n-1}^ii^k 不妨用nn表示n−1n-1,而iki^k可用第二类斯特林数表示,则有: ans=(n+1)∗2C2n∑i=0nCin∑j=0iSjkCjij!ans=(

cdsszjj的博客 916

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

定义有向图的价值为图中每一个点的度数的 \(k\) 次方之和. 求:对于 \(n\) 个点的无向图所有可能情况的图的价值之和. 遇到这种题,八成是每个点单独算贡献,然后累加起来. 我们可以枚举一个点的度数是多少,然后试着去算该情况下的贡献,即 \(\sum_{i=0}^{n-1}\binom{n-1}{i}i^k\) 由于一共有 \(n\) 个点,而除了我们限定的边之外其余的边都是可以随...

EM LGH 148

BZOJ 5093: 图的价值 第二类斯特林数 NTT

5093: 图的价值Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 176  Solved: 89[Submit][Status][Discuss]Description“简单无向图”是指无重边、无自环的无向图(不一定连通)。一个带标号的图的价值定义为每个点度数的k次方的和。给定n和k,请计算所有n个点的带标号的简单无向图的价值之和。因为答案很大,请...

BlackJack 1953

【HackerRank-costly-graphs】【BZOJ5093】图的价值(第二类斯特林数)(NTT)

传送门 题解: 首先我们的需要一个答案的表达式。 考虑111号点的度数,该度数能够出现在多少种图中,以及nnn个点等价。 以下用mmm暂代原题意中的kkk。 我们可以得到答案的表达式: Ans=n⋅2(n−12)∑i=0n−1(n−1i)imAns=n\cdot 2^{n-1\choose 2}\sum_{i=0}^{n-1}{n-1\choose i}i^mAns=n⋅2(2n−1​)i=0∑...

zxyoi_dreamer的博客(不定期诈尸) 246

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

Description 一个带标号的图的价值定义为每个点度数的k次方的和。 给定n和k,请计算所有n个点的带标号的简单无向图的价值之和。 Sample Input 6 5 Sample Output 67584000 首先考虑每个点的贡献,点之间互不影响所以一个点的答案乘于nnn即可。 可得式子: 2(n−1)(n−1)2n∑i=0n−1ikCn−1i2^{\frac {(n-1)(n-1)...

xgc_woker的博客 335

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

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

weixin_30384031的博客 114
上一篇: [bzoj4836][分治FFT]二元运算
下一篇: [bzoj4881][DP]线段游戏
Rose_max
博客等级 码龄10年 97粉丝 610原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值