【树上乘法原理】ICPC Shanghai 2021 G, Edge Groups

news2024/11/19 5:39:41

http://oj.daimayuan.top/course/8/problem/400

题意:

 

思路:

求方案数,考虑组合数学

手摸一下样例发现,对于一棵子树,若边数为偶数,那么可以内部匹配,但是如果边数为奇数,那么就一定需要u和fa那条边和子树的边匹配

考虑乘法原理

将多出来的边进行匹配

如果边数还为奇数,那么就和u和fa这条边匹配

若多出来K条边,由乘法原理知道,方案数为(K-1)*(K-3)*....

Code:

#include <bits/stdc++.h>

#define int long long

using namespace std;

const int mxn=1e6+10;
const int mxv=1e6+10;
const int mod=998244353;

vector<int> G[mxn];

int N,u,v;
int ans=1;
int sz[mxn];

void dfs(int u,int fa){
	int cnt=0;
	sz[u]=1;
	for(auto v:G[u]){
		if(v==fa) continue;
		dfs(v,u);
		sz[u]+=sz[v];
		if(sz[v]&1) cnt++;
	}
	if(cnt&1) cnt++;
	for(int i=cnt-1;i>=0;i-=2){
		ans=ans*i%mod;
	}
}
void solve(){
	cin>>N;
	for(int i=1;i<=N-1;i++){
		cin>>u>>v;
		G[u].push_back(v);
		G[v].push_back(u);
	}
	dfs(1,0);
	cout<<ans%mod<<'\n';
}
signed main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int __=1;//cin>>__;
	while(__--)solve();return 0;
}

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

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

相关文章

使用SpringBoot替代Nginx发布Vue3项目

目录 一、新建一个SpringBoot项目 二、将Vue项目打包 三、打包文件放到SpringBoot中 四、配置反向代理 五、启动项目 六、集成案例 一、新建一个SpringBoot项目 &#xff08;博主SpringBoot版本2.7.14&#xff09; <dependency><groupId>org.springframewor…

深度学习算法的计算量

文章目录 一、FLOPs与FLOPS二、参数量parameters三、Latency与FPS四、结论 一、FLOPs与FLOPS 二、参数量parameters 三、Latency与FPS 四、结论

运算放大器(二):恒流源

一、实现原理 恒流源的输出电流能够在一定范围内保持稳定&#xff0c;不会随负载的变化而变化。 通过运放&#xff0c;将输入的电压信号转换成满足一定关系的电流信号&#xff0c;转换后的电流相当一个输出可调的简易恒流源。 二、电路结构 常用的恒流源电路如下…

16位S912ZVML32F3MKH、S912ZVML31F1WKF、S912ZVML31F1MKH混合信号MCU,适用于汽车和工业电机控制应用。

S12 MagniV微控制器是易于使用且高度集成的混合信号MCU&#xff0c;非常适合用于汽车和工业应用。S12 MagniV MCU提供单芯片解决方案&#xff0c;是基于成熟的S12技术的完整系统级封装 (SiP) 解决方案&#xff0c;在整个产品组合内软件和工具都兼容。 S12 MagniV系统级封装 (S…

Hibernate Validator-校验注解使用归纳

文章目录 前言java-校验注解使用归纳1. 概述2. 引入依赖3. 手动抓取校验错误信息示例4. 自定义校验注解编写示例5. 统一配置校验错误信息示例 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。  …

安装支持vs2019的MFC(解决MSBuild 错误 MSB8041、MSB8042)

安装支持MFC的vs2019&#xff08;解决MSBuild 错误 MSB8041、MSB8042&#xff09; 常用安装选项解决MSBuild 错误 常用安装选项 解决MSBuild 错误 安装上述勾选内容后&#xff0c;即可解决MSBuild 错误 MSB8041 MSB8041&#xff1a;此项目需要 MFC/ATL 库。 https://learn.mic…

java读取资源路径的几种方式

Testpublic void path() throws IOException {System.out.println("用户当前工作目录"System.getProperty("user.dir"));File directory new File("");String path2 directory.getCanonicalPath();System.out.println("当前工作目录1:&qu…

0137 内存管理1

目录 3.内存管理 3.1内存管理概念 3.1部分习题 3.内存管理 3.1内存管理概念 3.1部分习题 1.内存保护需要由&#xff08;&#xff09;完成&#xff0c;以保证进程空间不被非法访问 A.操作系统 B.硬件机构 C.操作系统和硬件机构合作 D.操作系统或硬件…

【Ansible】自动化部署工具-----Ansible

自动化部署工具-Ansible 1.Ansible概述2.ansible环境安装部署2.1 command模块2.2 shell模块2.3 cron模块2.4 user模块2.5 group模块2.6 copy模块2.7 file模块2.8 hostname模块2.9 ping模块2.10 yum模块2.11 service/systemd模块2.12 script模块2.13 mount模块2.14 archive模块2…

比较18组二分类网络迭代次数

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点&#xff0c;AB训练集各由6张二值化的图片组成&#xff0c;让A&#xff0c;B中各有5个点&#xff0c;并且让这10个点的位置没有重合。比较迭代次数的顺序。 其中有18组数据 差值结构 A-B 迭代次数 构造平均列…

测试技术之测试用例质量的评估

第一&#xff0c;凭证测试用例的方式评估其品质&#xff0c;主要搜罗&#xff1a; 1)测试用例与需要规格剖析中需要条款的可追溯性&#xff0c;好比&#xff1a;咱们要求每一个需要条款至少有1个测试用例与之对于应。目的是为了评估测试的需要拆穿困绕率&#xff0c;以及合成需…

接口自动化测试要做什么?8个步骤讲的明明白白(小白也能看懂系列)

先了解下接口测试流程&#xff1a; 1、需求分析 2、Api文档分析与评审 3、测试计划编写 4、用例设计与评审 5、环境搭建&#xff08;工具&#xff09; 6、执行用例 7、缺陷管理 8、测试报告 那"接口自动化测试"怎么弄&#xff1f;只需要在上篇文章的基础上再梳理下就…

QT学习之旅 - 一个QT的基本项目

文章目录 定时器(时间)位置信息QTableWidget用cellwidget添加控件隐藏QTableWidget的滚动条自动调整适应大小 UDPUDP ClientUDP ServerUDP udpSocket.readDatagram重要参数使用多线程udp 自定义信号和槽UDP服务端接收数据(全局变量) QWT设置标题数轴相关设置坐标轴范围设置坐标…

赌博应用引风波,苹果、Meta、谷歌官司缠身,被视为“博彩公司”

一名美国法官认定&#xff0c;苹果、Meta、谷歌等科技巨头允许在其应用商店上架赌博应用程序的行为可能涉及从赌博活动中获利&#xff0c;类似于博彩公司。然而&#xff0c;该判决存在模糊的界限&#xff0c;并且法官认为这些公司有权提出上诉。 “苹果公司被指控在其应用商店上…

win11安装appium

node安装 node下载网址: Download | Node.js 安装后对node安装包路径进行配置 npm config set prefix “E:\nodejs\node_global” //设置全局包目录 npm config set cache “E:\nodejs\node_cache” //设置缓存目录npm config list //查看npm配置npm install -g appium //安…

Java 网络编程基础

文章目录 前言什么是网络编程网络编程基础知识网络通讯流程长连接和短连接Socket Java 网络编程总结 前言 一个网络请求、服务之间的调用都需要进行网络通讯&#xff0c;在日常开发时我们可能并不会关心我们的服务端是怎么接收到请求的、调用别的服务是怎么调用的&#xff0c;…

HCIP——OSPF不规则区域划分及LSA详解

ZY技术分享 一、OSPF与RIP异同二、OSPF的不规则区域划分1、远离骨干的非骨干使用tunnel隧道使用虚链路使用多进程双向重发布 2、不连续骨干 三、OSPF的LSA详解LSA头部Type - 1LSAType - 2LSAType - 3LSAType - 5LSAType - 4LSA 一、OSPF与RIP异同 OSPFRIP v1RIP v2链路状态路由…

行星碰撞(力扣)栈 JAVA

给定一个整数数组 asteroids&#xff0c;表示在同一行的行星。 对于数组中的每一个元素&#xff0c;其绝对值表示行星的大小&#xff0c;正负表示行星的移动方向&#xff08;正表示向右移动&#xff0c;负表示向左移动&#xff09;。每一颗行星以相同的速度移动。 找出碰撞后剩…

Mysql的增删改查

一.增加数据&#xff08;insert&#xff09; insert into 表名&#xff08;列名1&#xff0c;列名2&#xff0c;列名3&#xff0c;.....列名n&#xff09;values(值&#xff0c;值&#xff0c;值&#xff0c;....值&#xff09; insert into userinfo(id,name,age) values(&quo…

每日一题——除自身以外数组的乘积

除自身以外数组的乘积 题目链接 这一题乍一看好像十分简单&#xff0c;先用一趟循环遍历所有数据&#xff0c;得到数据所有元素的乘积&#xff0c;再用一趟循环将这个乘积除以每个元素&#xff0c;这样不就得到了除自身以外数组的乘积吗&#xff1f;我们先来看看代码&#xff…