当前位置: 首页 > news >正文

CF1667E Centroid Probabilities

题目描述

对于所有点数为 nnn 的树,如果其满足 对于所有 i∈[2,n]i\in [2,n]i[2,n],与 iii 相连的 jjj 中有且只有一个点 jjj 满足 j<ij<ij<i ,那么我们称其为好树

对于 1∼n1\sim n1n 每个点求出来有多少好树满足重心为 iii

这里重心定义为删去这个点后形成的所有连通块大小均小于 n−12\frac{n-1}22n1

数据范围 3≤n≤2×1053\le n\le 2\times 10^53n2×105nnn 为奇数(所以不存在树有多个重心的情况)

题解

m=n+12m=\frac{n+1}{2}m=2n+1fif_ifi表示iii的子树大小≥m\ge mm的方案数
枚举iii的子树大小jjj,则有式子
fi=(i−1)∑j=mn−i+1(n−ij−1)(j−1)!(n−j−1)!f_i=(i-1)\sum_{j=m}^{n-i+1}\binom{n-i}{j-1}(j-1)!(n-j-1)!fi=(i1)j=mni+1(j1ni)(j1)!(nj1)!
前面的i−1i-1i1是钦定iii的父亲,组合数是从iii后面的点中选出属于iii子树的点,两个阶乘是为了计算两个点集连成树的方案数
=(i−1)∑j=mn−i+1(n−i)!(j−1)!(n−i−j+1)!(j−1)!(n−j−1)!=(i-1)\sum_{j=m}^{n-i+1}\frac{(n-i)!}{(j-1)!(n-i-j+1)!}(j-1)!(n-j-1)!=(i1)j=mni+1(j1)!(nij+1)!(ni)!(j1)!(nj1)!

=(i−1)(n−i)!∑j=mn−i+1(n−j−1)!(n−i−j+1)!=(i-1)(n-i)!\sum_{j=m}^{n-i+1}\frac{(n-j-1)!}{(n-i-j+1)!}=(i1)(ni)!j=mni+1(nij+1)!(nj1)!

=(n−i)!(i−1)!∑j=mn−i+1(n−j−1)!(n−i−j+1)!(i−2)!=(n-i)!(i-1)!\sum_{j=m}^{n-i+1}\frac{(n-j-1)!}{(n-i-j+1)!(i-2)!}=(ni)!(i1)!j=mni+1(nij+1)!(i2)!(nj1)!

=(n−i)!(i−1)!∑j=mn−i+1(n−j−1i−2)=(n-i)!(i-1)!\sum_{j=m}^{n-i+1}\binom{n-j-1}{i-2}=(ni)!(i1)!j=mni+1(i2nj1)

=(n−i)!(i−1)!∑k=i−2n−m−1(ki−2)=(n-i)!(i-1)!\sum_{k=i-2}^{n-m-1}\binom{k}{i-2}=(ni)!(i1)!k=i2nm1(i2k)

=(n−i)!(i−1)!(n−mi−1)=(n-i)!(i-1)!\binom{n-m}{i-1}=(ni)!(i1)!(i1nm)

于是fif_ifi可以O(n)O(n)O(n)计算,考虑容斥求出ansians_iansi表示以iii为重心的方案数,枚举它的儿子jjj子树大小≥m\ge mm,显然对于jjj来说父亲为哪个方案数都是一样的,所以以iii为父亲的方案数就是fjj−1\frac{f_j}{j-1}j1fj,即答案为ansi=fi−∑j=i+1fjj−1ans_i=f_i-\sum_{j=i+1}\frac{f_j}{j-1}ansi=fij=i+1j1fj

code\text{code}code

#include<cstdio>
#define ll long long
using namespace std;
const ll mod=998244353;
ll ksm(ll a,ll b)
{if(b==0) return 1;ll tmp=ksm(a,b>>1);if(b&1) return tmp*tmp%mod*a%mod;else return tmp*tmp%mod;
}
const int N=2e5+1000;
int n;
ll f[N+10],fac[N+10],inv[N+10];
ll C(int n,int m){if(m>n) return 0;return fac[n]*inv[m]%mod*inv[n-m]%mod;}
int main()
{scanf("%d",&n);fac[0]=inv[0]=1;for(int i=1;i<=n;i++) fac[i]=fac[i-1]*i%mod,inv[i]=ksm(fac[i],mod-2);f[1]=fac[n-1];int m=n+1>>1;for(int i=2;i<=n;i++) f[i]=fac[i-1]*fac[n-i]%mod*C(n-m,i-1)%mod;ll res=0;for(int i=n;i>=1;i--){ll tmp=f[i];f[i]=(f[i]+mod-res)%mod;res+=tmp*ksm(i-1,mod-2)%mod,res%=mod;}for(int i=1;i<=n;i++) printf("%lld ",f[i]);puts("");return 0;
}

相关文章:

CF1667E Centroid Probabilities

题目描述 对于所有点数为 nnn 的树&#xff0c;如果其满足 对于所有 i∈[2,n]i\in [2,n]i∈[2,n]&#xff0c;与 iii 相连的 jjj 中有且只有一个点 jjj 满足 j<ij<ij<i &#xff0c;那么我们称其为好树 对于 1∼n1\sim n1∼n 每个点求出来有多少好树满足重心为 iii …...

全网详细总结com.alibaba.fastjson.JSONException: syntax error, position at xxx常见错误方式

文章目录1. 复现问题2. 分析问题3. 解决问题4. 该错误的其他解决方法5. 重要补充1. 复现问题 今天在JSONObject.parse(json)这个方法时&#xff0c;却报出如下错误&#xff1a; com.alibaba.fastjson.JSONException: syntax error, position at 0, name usernameat com.aliba…...

快速部署个人导航页:美好的一天从井然有序开始

很多人都习惯使用浏览器自带的收藏夹来管理自己的书签&#xff0c;然而收藏夹存在着一些问题。 经过长时间的累积&#xff0c;一些高频使用的重要网站和偶尔信手收藏的链接混在了一起&#xff0c;收藏夹因为内容过多而显得杂乱无章&#xff1b;收藏夹没有什么美观可言&#xf…...

【Python】如何在 Python 中使用“柯里化”编写干净且可重用的代码

对于中级Python开发者来说&#xff0c;了解了Python的基础语法、库、方法&#xff0c;能够实现一些功能之后&#xff0c;进一步追求的就应该是写出优雅的代码了。 这里介绍一个很有趣的概念“柯里化”。 所谓柯里化&#xff08;Currying&#xff09;是把接受多个参数的函数变换…...

ROS笔记(4)——发布者Publisher与订阅者Subscribe的编程实现

发布者 以小海龟的话题消息为例,编程实现发布者通过/turtle1/cmd_vel 话题向 turtlesim节点发送消息&#xff0c;流程如图 步骤一 创建功能包&#xff08;工作空间为~/catkin_ws/src&#xff09; $ cd ~/catkin_ws/src $ catkin_create_pkg learning_topic roscpp rospy s…...

Linux进程概念(一)

文章目录Linux进程概念&#xff08;一&#xff09;1. 冯诺依曼体系结构2. 操作系统(Operator System)2.1 考虑2.2 如何理解操作系统对硬件做管理&#xff1f;2.3 操作系统为什么要对软硬件资源做管理呢&#xff1f;2.4 系统调用和库函数概念2.5 计算机体系结构3. 进程的初步理解…...

Leetcode.1124 表现良好的最长时间段

题目链接 Leetcode.1124 表现良好的最长时间段 Rating &#xff1a; 1908 题目描述 我们认为当员工一天中的工作小时数大于 8 小时的时候&#xff0c;那么这一天就是「劳累的一天」。 所谓「表现良好的时间段」&#xff0c;意味在这段时间内&#xff0c;「劳累的天数」是严格…...

达梦数据库会话、事务阻塞排查步骤

查询阻塞的事务IDselect * from v$trxwait order by wait_time desc;--单机select * from v$dsc_trxwait order by wait_time desc;–DSC集群查询阻塞事务的会话信息select sf_get_session_sql(sess_id),* from v$sessions where trx_id69667;--单机select sf_get_session_sql(…...

sqlServer 2019 开发版(Developer)下载及安装

下载软件 官网只有2022的&#xff0c;2019使用百度网盘进行下载 安装下崽器 选择自定义安装 选择语言、以及安装位置 点击“安装” 安装 SQL Server 可能的故障 以上步骤安装后会弹出以上界面&#xff0c;如果未弹出&#xff0c;手动去安装目录下点击 SETUP.EXE 文件…...

使用Arthas定位问题

功能概述 首先&#xff0c;Arthas的常用功能大概有以下几个&#xff1a; 解决依赖冲突 sc命令&#xff1a;模糊查看当前 JVM 中是否加载了包含关键字的类&#xff0c;以及获取其完全名称。 sc -d 关键字 注意使用 sc -d 命令&#xff0c;获取 classLoaderHash命令&#xff1a…...

性能测试之tomcat+nginx负载均衡

nginx tomcat 配置准备工作&#xff1a;两个tomcat 执行命令 cp -r apache-tomcat-8.5.56 apache-tomcat-8.5.56_2修改被复制的tomcat2下conf的server.xml 的端口号&#xff0c;不能与tomcat1的端口号重复&#xff0c;不然会启动报错 ,一台电脑上想要启动多个tomcat&#xff0c…...

【手写 Vuex 源码】第十一篇 - Vuex 插件的开发

一&#xff0c;前言 上一篇&#xff0c;主要介绍了 Vuex-namespaced 命名空间的实现&#xff0c;主要涉及以下几个点&#xff1a; 命名空间的介绍和使用&#xff1b;命名空间的逻辑分析与代码实现&#xff1b;命名空间核心流程梳理&#xff1b; 本篇&#xff0c;继续介绍 Vu…...

opencv基础知识和绘图图形

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a; lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…...

15- 决策回归树, 随机森林, 极限森林 (决策树优化) (算法)

1. 决策回归树: from sklearn.tree import DecisionTreeRegressor model DecisionTreeRegressor(criterionmse,max_depth3) model.fit(X,y) # X是40个点 y是一个圆 2. 随机森林 稳定预测: from sklearn.ensemble import RandomForestClassifier # model RandomForestC…...

Flink相关的记录

Flink源码编译首次编译的时候&#xff0c;去除不必要的操作&#xff0c;同时install会把Flink中的module安装到本地仓库&#xff0c;这样依赖当前module的其他组件就无需去远程仓库拉取当前module&#xff0c;节省了时间。mvn clean install -T 4 -DskipTests -Dfast -Dmaven.c…...

配置可视化-基于form-render的无代码配置服务(一)

背景 有些业务场景需要产品或运营去配置JSON数据提供给开发去使用&#xff08;后面有实际业务场景的说明&#xff09;&#xff0c;原有的业务流程&#xff0c;非开发人员&#xff08;后面直接以产品指代&#xff09;把数据交给开发&#xff0c;再由开发去更新JSON数据。对于产…...

Java 代理模式详解

1、代理模式 代理模式是一种比较好理解的设计模式。简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问&#xff0c;这样就可以在不修改原目标对象的前提下&#xff0c;提供额外的功能操作&#xff0c;扩展目标对象的功能。 代理模式的主要作用是扩展目标对象…...

知识付费小程序怎么做_分享知识付费小程序的作用

在线知识付费产业的主要业务逻辑是基于用户的主动学习需求&#xff0c;为其提供以跨领域基础知识与技能为核心的在线知识服务&#xff0c;提升其达到求知目的的效率。公众号和小程序的迅速发展&#xff0c;又为知识付费提供了技术支持&#xff0c;从而促进了行业的进一步发展。…...

14- 决策树算法 (有监督学习) (算法)

决策树是属于有监督机器学习的一种决策树算法实操: from sklearn.tree import DecisionTreeClassifier # 决策树算法 model DecisionTreeClassifier(criterionentropy,max_depthd) model.fit(X_train,y_train)1、决策树概述 决策树是属于有监督机器学习的一种&#xff0c;起源…...

如何编译和运行C++程序?

C 和C语言类似&#xff0c;也要经过编译和链接后才能运行。在《C语言编译器》专题中我们讲到了 VS、Dev C、VC 6.0、Code::Blocks、C-Free、GCC、Xcode 等常见 IDE 或编译器&#xff0c;它们除了可以运行C语言程序&#xff0c;还可以运行 C 程序&#xff0c;步骤是一样的&#…...

Golang 给视频添加背景音乐 | Golang工具

目录 前言 环境依赖 代码 总结 前言 本文提供给视频添加背景音乐&#xff0c;一如既往的实用主义。 主要也是学习一下golang使用ffmpeg工具的方式。 环境依赖 ffmpeg环境安装&#xff0c;可以参考我的另一篇文章&#xff1a;windows ffmpeg安装部署_阿良的博客-CSDN博客 …...

让AI护理医疗:解决卫生系统的痛点

一、引言 1.对医疗领域中AI技术的介绍 随着人工智能的不断发展&#xff0c;它已经成为了各个领域中的重要组成部分。在医疗领域中&#xff0c;AI技术也逐渐发挥着越来越重要的作用。从诊断到治疗&#xff0c;从健康管理到研究&#xff0c;人工智能已经深刻地影响着医疗领域的…...

Windows 离线安装 MySQL 8

目录 1. 下载离线安装包 2. 上传解压 3 配置 my.ini 文件 4 设置系统环境变量 5 安装 MySQL 6 登录 MySQL 客户环境是内网环境&#xff0c;不能访问外网&#xff0c;只能离线安装 MySQL 了。 1. 下载离线安装包 MySQL 离线压缩包官网下载地址&#xff1a;MySQL :: Down…...

【前端攻城狮之vue基础】02路由+嵌套路由+路由query/params传参+路由props配置+replace属性+编程式路由导航+缓存路由组件

路由的基础知识1.路由简介2.路由基本使用3.嵌套路由4.传递路由的query传参# 5.传递路由的params参数6.路由的props传参配置7.路由router-link标签的replace属性8.编程式路由导航9.缓存路由组件1.路由简介 路由是一条条对应的key-value关系&#xff0c;key就是前端地址栏的路径…...

CHAPTER 1 Zabbix介绍及安装

Zabbix介绍及安装1.1 Zabbix监控1 为什么要监控1.1 网站可用性2 监控什么东西2.1 监控范畴3 怎么来监控3.1 远程管理服务器3.2 监控硬件3.3 查看cpu相关3.4 内存3.5 磁盘3.6 监控网络4 监控工具总览5 zabbix介绍5.1 zabbix的组成5.2 zabbix监控范畴1.2 安装zabbix1 环境检查2 安…...

认识V模型、W模型、H模型

软件测试与软件工程息息相关&#xff0c;软件测试是软件工程组成中不可或缺的一部分。 在软件工程、项目管理、质量管理得到规范化应用的企业&#xff0c;软件测试也会进行得比较顺利&#xff0c;软件测试发挥的价值也会更大。 要关注软件工程、质量管理以及配置管理与软件测试…...

excel ttest检测

1、excel函数含义 TTEST(array1,array2,tails,type) ▪ Array1: 第一组数据集 ▪ Array2: 第二组数据集 ▪ Tails: 用于定义所返回的分布的尾数: 1 代表单尾&#xff1b;2 代表双尾 ▪ Type: 用于定义 t-检验的类型: 1 代表成对检验&#xff1b;2 代表双样本等方差假设&am…...

PDFPrinting.Net操作进行细粒度控制

PDFPrinting.Net操作进行细粒度控制 PDFPrinting.Net能够容易且灵活地预测完美的打印结果以及用户文件的示例性显示。可以快速浏览.NET PDF打印中最关键的元素。如果用户需要获得更详细的概述&#xff0c;那么他可以查看快速入门手册&#xff0c;甚至是现有文档的详细概述参考。…...

SegPGD

在这项工作中&#xff0c;我们提出了一种有效和高效的分割攻击方法&#xff0c;称为SegPGD。此外&#xff0c;我们还提供了收敛性分析&#xff0c;表明在相同次数的攻击迭代下&#xff0c;所提出的SegPGD可以创建比PGD更有效的对抗示例。此外&#xff0c;我们建议应用我们的Seg…...

ESP-IDF + Vscode ESP32 开发环境搭建以及开发入门

ESP-IDF Vscode ESP32 开发环境搭建以及开发入门 文章目录ESP-IDF Vscode ESP32 开发环境搭建以及开发入门1. 前言2. 下载开发工具3. 配置工具4. 创建工程5. 解决vscode找不到头文件&#xff0c;波浪线警告6. 添加自己的组件6.1 组件说明6.2 添加项目组件6.3 添加扩展组件7. …...

青海营销型网站建设/国外免费网站域名服务器查询软件

在这里下载完整的代码&#xff1a;http://download.csdn.net/detail/linlzk/9127441 移动端手机照片上传时&#xff0c;发现iOS手机上传竖拍照片会逆时针旋转90度&#xff0c;横拍照片无此问题&#xff1b;Android手机没这个问题。&#xff08;貌似pc端就没有办法啦&#xff0…...

wordpress 公司建站/长沙网站推广和优化

动态路由OSPF协议&#xff01;一.OSPF基本概念1.OSPF简介2.OSPF的基本特点3.Router-ID4.OSPF Cost二.OSPF的三张表1.邻居表&#xff08;peer table&#xff09;2.链路状态数据库&#xff08;LSDB&#xff09;3.OSPF路由表&#xff08;Routing table)三.OSPF五种报文1.OSPF Hell…...

网站建设中 怎么办/百度学术官网

1.使用TensorFlow并行化训练神经网络 from IPython.display import Image %matplotlib inline1.1TensorFlow框架与模型训练性能 TensorFlow可以显著加快机器学习任务流程&#xff0c;了解其原理之前&#xff0c;不妨先明确在硬件设备上执行复杂的计算所遭遇的一些性能挑战。 …...

怎么给自己的网站更换域名/广州网站推广运营

JSP和Servlet都是与使用Java构建基于Web的应用程序有关的重要概念。 基本上&#xff0c;Servlet是Java中HTML&#xff0c;而JSP是HTML中的Java。 任何典型的Web开发面试都可能有几个基于JSP和Servlet的Java面试问题。 尽管JSP和Servlet的主要目的是相同的&#xff0c;但是两者之…...

做网站到a5卖站赚钱/注册商标查询官网入口

Class类&#xff1a;任何类都是Class类的对象 Class类的实例对象的三种表现形式&#xff1a;1、通过某个类的.class实现 2、某个类的对象的getClass&#xff08;&#xff09;方法 3、Class.forName&#xff08;&#xff09; 注意&#xff1a;Class.forName也可以实现动态加载类…...

怎样申请个人网站/百度拍照搜题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通&#xff1a;起重机司机(限桥式起重机)考试题是安全生产模拟考试一点通生成的&#xff0c;起重机司机(限桥式起重机)证模拟考试题库是根据起重机司机(限桥式起重机)最新版教材汇编出起重机司机…...