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

【Codeforces】 CF1762E Tree Sum

题目链接

CF方向
Luogu方向

题目解法

首先考虑 n n n 为奇数的情况无解,这个可以通过乘积矛盾简单证明

接下来考虑一个结论是:偶数个点的树的形态确定之后,只有恰好 1 1 1 种染色方案,即从叶子一层一层往上面染,这样一定可以构造出来解且唯一

考虑一个更强的结论是:一条边的边权为 1 1 1 当且仅当这条边对应的两个子树大小都为偶数
为什么?考虑 s i z siz siz 为奇数的情况一定不可能点全部合法,但又要使它合法,只能让子树根的乘积为 1 1 1,然后令上面连向整体的边为 − 1 -1 1 即可
s i z siz siz 全为偶数的情况用反证法不难证出

现在有一个很重要的 t r i c k trick trick(我也要提醒我自己!!!)是:对于每条边考虑它的贡献,然后类和
这样就好算了,对于一条连接大小为 i , n − i i,n-i i,ni 的子树的边(必须在 1 − n 1-n 1n 路径上),贡献为 ( n − 2 i − 1 ) f i f n − i i ( n − i ) \binom{n-2}{i-1}f_if_{n-i}i(n-i) (i1n2)fifnii(ni)
其中 f i f_i fi i i i 个点的树的形态方案数,即为 i i − 2 i^{i-2} ii2
时间复杂度 O ( n l o g n ) O(nlogn) O(nlogn)

#include <bits/stdc++.h>
using namespace std;
const int N=500100,P=998244353;
int n,fac[N],inv[N],f[N];
inline int read(){int FF=0,RR=1;char ch=getchar();for(;!isdigit(ch);ch=getchar()) if(ch=='-') RR=-1;for(;isdigit(ch);ch=getchar()) FF=(FF<<1)+(FF<<3)+ch-48;return FF*RR;
}
int qmi(int a,int b){int res=1;for(;b;b>>=1){if(b&1) res=1ll*res*a%P;a=1ll*a*a%P;}return res;
}
int C(int a,int b){if(a<b||b<0) return 0;return 1ll*fac[a]*inv[b]%P*inv[a-b]%P;
}
int main(){n=read();if(n&1){ puts("0");exit(0);}fac[0]=1;for(int i=1;i<=n;i++) fac[i]=1ll*fac[i-1]*i%P;inv[n]=qmi(fac[n],P-2);for(int i=n-1;i>=0;i--) inv[i]=1ll*inv[i+1]*(i+1)%P;f[1]=1;for(int i=2;i<=n;i++) f[i]=qmi(i,i-2);int ans=0;for(int i=1,neg=-1;i<n;i++,neg*=-1) ans=(ans+1ll*neg*C(n-2,i-1)*f[i]%P*f[n-i]%P*i%P*(n-i))%P;printf("%d\n",(ans+P)%P);return 0;
}

相关文章:

【Codeforces】 CF1762E Tree Sum

题目链接 CF方向 Luogu方向 题目解法 首先考虑 n n n 为奇数的情况无解&#xff0c;这个可以通过乘积矛盾简单证明 接下来考虑一个结论是&#xff1a;偶数个点的树的形态确定之后&#xff0c;只有恰好 1 1 1 种染色方案&#xff0c;即从叶子一层一层往上面染&#xff0c;…...

用《斗破苍穹》的视角打开C#委托2 委托链 / 泛型委托 / GetInvocationList

委托链 经过不懈地努力&#xff0c;我终于成为了斗师&#xff0c;并成功掌握了两种斗技——八极崩和焰分噬浪尺。于是&#xff0c;我琢磨着&#xff0c;能不能搞一套连招&#xff0c;直接把对方带走。 using System; using System.Collections.Generic; using System.Linq; u…...

唐老师讲电赛

dc-dc电源布局要点...

[ICCV-23] DeformToon3D: Deformable Neural Radiance Fields for 3D Toonification

pdf | code 将3D人脸风格化问题拆分为几何风格化与纹理风格化。提出StyleField&#xff0c;学习以风格/ID为控制信号的几何形变残差&#xff0c;实现几何风格化。通过对超分网络引入AdaIN&#xff0c;实现纹理风格化。由于没有修改3D GAN空间&#xff0c;因此可以便捷实现Edit…...

配置Hive使用Spark执行引擎

配置Hive使用Spark执行引擎 Hive引擎概述兼容问题安装SparkSpark配置Hive配置HDFS上传Spark的jar包执行测试速度对比 Hive引擎 概述 在Hive中&#xff0c;可以通过配置来指定使用不同的执行引擎。Hive执行引擎包括&#xff1a;默认MR、tez、spark MapReduce引擎&#xff1a; 早…...

基于FPGA的视频接口之千兆网口(五应用)

简介 相信网络上对于FPGA驱动网口的开发板、博客、论坛数不胜数,为何博主需要重新手敲一遍呢,而不是做一个文抄君呢!因为目前博主感觉网络上描述的多为应用层上的开发,非从底层开始说明,本博主的思虑还是按照老规矩,按照硬件、底层、应用等关系,使用三~四篇文章,来详细…...

车载开发所学内容,有哪些?程序员的转岗位需求

一、高速发展的行业前景 随着全球智能汽车市场的飞速发展&#xff0c;车载开发行业的前景可谓一片光明。各国政府对于自动驾驶和智能交通系统的政策支持&#xff0c;为行业带来了前所未有的机遇。此外&#xff0c;人工智能、大数据、云计算等前沿技术的不断突破&#xff0c;为…...

VSCode Intellij IDEA CE 数据库连接

VSCode & Intellij IDEA CE 数据库连接 大概记一下现在正在用的几个工具/插件 VSCode VSCode 里面的工具我下载了很多&#xff0c;如果只是链接 MySQL 的话&#xff0c;可能用 Jun Han 这位大佬的 MySQL 就好了&#xff1a; 使用这个插件直接打开 .sql 文件单击运行就能…...

直流无刷电机开发应用

下面的链接是笔者在研究无刷电机的过程中&#xff0c;找到的业内无刷电机驱动龙头企业&#xff0c;峰岹科技的各类无刷电机应用设计参考&#xff0c;比较有学习和借鉴意义。 应用手册 - 峰岹科技...

c 语言基础题目:PTA L1-030 一帮一

“一帮一学习小组”是中小学中常见的学习组织方式&#xff0c;老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作&#xff0c;即在得到全班学生的排名后&#xff0c;在当前尚未分组的学生中&#xff0c;将名次最靠前的学…...

网工内推 | base郑州,上市公司,最高15薪,五险一金全额缴

01 四方达 招聘岗位&#xff1a;网络工程师 职责描述&#xff1a; 1、负责公司数据中心&#xff08;机房&#xff09;的管理与运维工作。 2、负责公司服务器、路由器、防火墙、交换机等设备的管理、以及网络平台的运行监控和维护&#xff1b; 3、负责公司服务器运维管理工作、…...

求后缀表达式的值

后缀表达式的值 【题目描述】 从键盘读入一个后缀表达式&#xff08;字符串&#xff09;&#xff0c;只含有0-9组成的运算数及加&#xff08;&#xff09;、减&#xff08;—&#xff09;、乘&#xff08;*&#xff09;、除&#xff08;/&#xff09;四种运算符。每个运算数之间…...

【FISCO-BCOS】十七、角色的权限控制

目录 一、角色定义 二、账户权限控制 1.委员新增、撤销与查询 2.委员权重修改 3.委员投票生效阈值修改 4. 运维新增、撤销与查询 一、角色定义 分为治理方、运维方、监管方和业务方。考虑到权责分离&#xff0c;治理方、运维方和开发方权责分离&#xff0c;角色互斥。 治理…...

vue怎样封装接口

Vue可以使用axios来发送HTTP请求&#xff0c;通过封装axios可以实现接口的统一管理和调用。下面是一个简单的封装接口的示例。 安装axios 在项目中安装axios依赖&#xff0c;可以使用npm或者yarn命令进行安装。 npm install axios --save创建api.js文件 在项目中创建一个ap…...

Typescript 笔记:函数

1 函数定义 function function_name() {// 执行代码 }2 函数返回值 function function_name():return_type { // 语句return value; } return_type 是返回值的类型。 return 关键词后跟着要返回的结果。 返回值的类型需要与函数定义的返回类型(return_type)一致。 3 函数…...

Axios 封装

请注意以下文件夹: utils下的setToken.js 是token封装(封装 Token-CSDN博客),service.js 是axios封装。 Axios封装: 1.安装axios 在项目终端下 输入: npm install axios --save 2.在main.js全局引入axios import axios from axiosVue.prototype.$axios =axios //挂…...

CocosCreator 面试题(一)Javascript的垃圾回收机制

JavaScript的垃圾回收机制是一种自动管理内存的机制&#xff0c;它负责检测和回收不再使用的内存&#xff0c;以便释放资源并提高性能。 标记清除&#xff08;Mark and Sweep&#xff09;&#xff1a;这是JavaScript最常用的垃圾回收算法。它的工作原理是通过标记活动对象&…...

【计算机网络】UDP协议编写群聊天室----附代码

UDP构建服务器 x 预备知识 认识UDP协议 此处我们也是对UDP(User Datagram Protocol 用户数据报协议)有一个直观的认识; 后面再详细讨论. 传输层协议无连接不可靠传输面向数据报 网络字节序 我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分, 磁盘文件中的…...

Java架构师高并发架构设计

目录 1 导学2 什么是高并发问题3 高并发处理之道4 akf扩展立方体5 细化理念应对高并发5 总结1 导学 本章的主要内容是大型系统架构设计的难点之一,高并发架构设计相关的知识落到实际项目上,就是订单系统的高并发架构设计。我们首先会去学习到底何为高并发问题,先把问题搞清楚…...

【客观赋权法1】熵权法(MATLAB全代码)

熵权法(entropy weight method, EWM) 1 原理2 MATLAB代码3 案例参考赋权法(Weighting Method) 是一种常用的数据处理方法,它可以将不同变量之间的重要性进行区分,并赋予它们不同的权重,以反映它们对整体的贡献程度。 指标在评估体系中的重要程度可以用 指标权重系数表示…...

Go语言模板方法模式:算法骨架

Go语言模板方法模式&#xff1a;算法骨架 1. 模板方法实现 type AbstractClass struct{}func (a *AbstractClass) TemplateMethod() {a.Step1()a.Step2()a.Step3() }func (a *AbstractClass) Step1() {} func (a *AbstractClass) Step2() {} func (a *AbstractClass) Step3() {…...

STHS34PF80红外存在检测:InfraredPD算法库集成与调试实战

1. 项目概述与核心价值最近在折腾一个智能家居的节能项目&#xff0c;核心需求是让设备能精准判断房间里到底有没有人&#xff0c;而不是简单地检测到有物体移动就触发。市面上很多基于PIR&#xff08;被动红外&#xff09;的运动传感器&#xff0c;对于静止不动的人体识别效果…...

YOLO26缝合A2-Nets注意力:双重注意力机制在复杂遮挡场景的奇效

本文系统解析A2-Nets双重注意力机制在YOLO目标检测框架中的应用潜力与实战价值。通过深入对比YOLOv10、YOLO26与YOLOv9的架构差异,结合A2-Nets二阶注意力池化与自适应特征分配的核心原理,揭示双重注意力机制在复杂遮挡场景下提升检测精度的根本原因。文章同步涵盖TensorRT部署…...

K210+STM32F103C8T6低成本送药小车:一个电赛小白的完整避坑与调参记录

K210STM32F103C8T6低成本送药小车&#xff1a;一个电赛小白的完整避坑与调参记录 第一次参加电子设计竞赛时&#xff0c;面对动辄上千元的OpenMV和各类传感器预算&#xff0c;我盯着手头仅有的K210开发板和STM32最小系统板陷入了沉思——能否用这两块总价不到300元的板子&#…...

BallonsTranslator:3分钟搞定漫画翻译的终极AI辅助工具

BallonsTranslator&#xff1a;3分钟搞定漫画翻译的终极AI辅助工具 【免费下载链接】BallonsTranslator 深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑 | Yet another computer-aided comic/manga translation tool powered by deeplearning 项目地址: https…...

从计数器到计时器:使用Spectator构建可观测性系统的实践指南

1. 项目概述&#xff1a;从“观众”到“观察者”的视角转变在软件开发&#xff0c;尤其是后端服务开发中&#xff0c;我们常常需要一种机制来观察和度量系统的内部状态。这种观察不是简单的日志打印&#xff0c;而是系统化、结构化地收集运行时指标&#xff0c;比如接口的调用次…...

MPLAB® Harmony嵌入式框架实战:从架构解析到项目开发避坑指南

1. 项目概述&#xff1a;从零到一&#xff0c;理解MPLAB Harmony的价值如果你是一位嵌入式开发者&#xff0c;尤其是长期与Microchip的PIC或SAM系列MCU打交道的朋友&#xff0c;那么“MPLAB Harmony”这个名字你一定不陌生。它可能出现在官方文档的角落里&#xff0c;在论坛的讨…...

郎朗乐境音乐会定档7月5日深圳:以破界之姿,开启全维感官盛宴

2026年7月5日&#xff0c;郎朗乐境音乐会将在深圳市宝安体育中心体育馆启幕&#xff0c;作为“深圳国际形象大使”的郎朗&#xff0c;将在这座以创新著称的国际化都市&#xff0c;&#xff0c;进一步探索艺术表达形式的多重可能&#xff0c;呈现一场融合音乐、文化与多维感官体…...

DeepSeek LDAP同步延迟从15分钟压缩至800ms:基于增量Sync+Change Notification机制的深度调优实录

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek LDAP集成方案 DeepSeek 模型服务在企业级部署中常需与现有身份认证体系对接&#xff0c;LDAP&#xff08;Lightweight Directory Access Protocol&#xff09;作为主流目录服务协议&#xff0…...

vue基于springboot框架的全国非物质文化遗产展示平台

目录同行可拿货,招校园代理 ,本人源头供货商项目概述技术架构核心功能特色设计部署与扩展项目技术支持源码获取详细视频演示 &#xff1a;同行可合作点击我获取源码->->进我个人主页-->获取博主联系方式同行可拿货,招校园代理 ,本人源头供货商 项目概述 全国非物质文…...