【学习笔记】「2020-2021 集训队作业」Communication Network
有点难😅
发现容斥系数设计的非常巧妙🤔
设 f ( i ) f(i) f(i)表示恰好有 i i i条边相同的方案数, g ( i ) g(i) g(i)表示至少有 i i i条边相同的方案数
根据二项式反演, g ( i ) = ∑ j ≥ i ( j i ) f ( j ) ⇒ f ( i ) = ∑ j ≥ i ( − 1 ) j − i ( j i ) g j g(i)=\sum_{j\ge i}\binom{j}{i}f(j)\Rightarrow f(i)=\sum_{j\ge i}(-1)^{j-i}\binom{j}{i}g_j g(i)=∑j≥i(ij)f(j)⇒f(i)=∑j≥i(−1)j−i(ij)gj
这个式子成立是因为 [ i = j ] = ∑ j ≤ k ≤ i ( − 1 ) k − j ( i k ) ( k j ) [i=j]=\sum_{j\le k\le i}(-1)^{k-j}\binom{i}{k}\binom{k}{j} [i=j]=∑j≤k≤i(−1)k−j(ki)(jk),点这里
用 g ( i ) g(i) g(i)进行替换,答案是 ∑ g ( j ) ⋅ ( ∑ i ≤ j i ⋅ 2 i ⋅ ( − 1 ) j − i ⋅ ( j i ) ) \sum g(j)\cdot (\sum_{i\le j}i\cdot 2^i\cdot (-1)^{j-i}\cdot \binom{j}{i}) ∑g(j)⋅(∑i≤ji⋅2i⋅(−1)j−i⋅(ij))
发现后面那一坨就等于 2 j 2j 2j。又根据 prufer \text{prufer} prufer序列,对于 k k k个连通块的生成树的方案数为 n k − 2 ∏ s i n^{k-2}\prod s_i nk−2∏si,可以转化为在每个连通块中钦定选一个点以及在选的边中钦定选一条边的方案数,这样就做完了。
类似的题目:CF1842G Tenzing and Random Operations
复杂度 O ( n ) O(n) O(n)。
#include<bits/stdc++.h>
#define ll long long
#define pb push_back
#define fi first
#define se second
#define db double
#define ull unsigned long long
#define inf 0x3f3f3f3f
using namespace std;
const int mod=998244353;
const int N=2e6+5;
int n;
ll dp[N][2][2];
vector<int>G[N];
ll fpow(ll x,ll y=mod-2){ll z(1);for(;y;y>>=1){if(y&1)z=z*x%mod;x=x*x%mod;}return z;
}
void add(ll &x,ll y){x=(x+y)%mod;
}
void dfs(int u,int topf){dp[u][0][0]=dp[u][1][0]=1;for(auto v:G[u]){if(v==topf)continue;dfs(v,u),memset(dp[0],0,sizeof dp[0]);for(int i=0;i<2;i++){for(int j=0;j<2;j++){for(int k=0;k<2;k++){for(int l=0;l<2;l++){if(j==1&&l==1)continue;if(i==0||k==0){add(dp[0][i+k][j+l],dp[u][i][j]*dp[v][k][l]);if(j==0&&l==0)add(dp[0][i+k][1],dp[u][i][j]*dp[v][k][l]);}if(k==1){add(dp[0][i][j+l],dp[u][i][j]*dp[v][k][l]%mod*n);}}}}}memcpy(dp[u],dp[0],sizeof dp[0]);}
}
int main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>n;for(int i=1;i<n;i++){int x,y;cin>>x>>y;G[x].pb(y),G[y].pb(x);}dfs(1,0)ll res=dp[1][1][1]*fpow(n,mod-2)%mod*2%mod;cout<<(res+mod)%mod;
}
相关文章:
【学习笔记】「2020-2021 集训队作业」Communication Network
有点难😅 发现容斥系数设计的非常巧妙🤔 设 f ( i ) f(i) f(i)表示恰好有 i i i条边相同的方案数, g ( i ) g(i) g(i)表示至少有 i i i条边相同的方案数 根据二项式反演, g ( i ) ∑ j ≥ i ( j i ) f ( j ) ⇒ f ( i ) ∑ j…...
文章参考链接
文章参考: 前端 echsrt横轴文字过长,…展示【link】js数组去重【link】js数据是String去重【link】js数据是对象去重【link】小程序使用wxml-to-canvas【link】vantui【link】微信小程序使用vantui组件【link】【link】微信小程序,选项卡页面…...
SQLI-labs-第七关
知识点:单引号()加括号闭合错误的布尔盲注 思路: 寻找注入点 我们首先看一下正常的回显,并没有显示出什么明显的信息 输入?id1 发现报错 输入?id1 -- 还是报错,说明SQL语句的语法错误可能不是单引号闭合…...
腾讯云轻量2核4G5M服务器_CPU内存_流量_带宽_系统盘
腾讯云轻量2核4G5M服务器:CPU内存流量带宽系统盘性能测评:轻量应用服务器2核4G5M带宽,免费500GB月流量,60GB系统盘SSD盘,5M带宽下载速度可达640KB/秒,流量超额按照0.8元每GB支付流量费,轻量2核4…...
从零开始搭建Apache服务器并使用内网穿透技术实现公网访问
Apache服务安装配置与结合内网穿透实现公网访问 文章目录 Apache服务安装配置与结合内网穿透实现公网访问前言1.Apache服务安装配置1.1 进入官网下载安装包1.2 Apache服务配置 2.安装cpolar内网穿透2.1 注册cpolar账号2.2 下载cpolar客户端 3. 获取远程桌面公网地址3.1 登录cpo…...
unordered_map和unordered_set的使用
前言 在C98中,STL提供了底层为红黑树的结构的一系列关联式容器,在查询时效率可以达到logN,即使最差的情况下需要比较红黑树的高度次,当树中的节点较多时,查询的效率也不是很理想,最好的查询是,进…...
javascript【格式化时间日期】
javascript【格式化时间日期】 操作: (1) 日期格式化代码 /*** 日期格式化函数<br/>* 调用格式:需要使用日期对象调用* <p> new Date().Format("yyyy/MM/dd HH:mm:ss"); </p>* param fmt 日期格式* returns {*} 返回格式化…...
CCC数字钥匙设计【NFC】--什么是AID?
1、NFC中的AID是什么? AID,英文全称为Application Identifier,这是NFC技术中的概念,AID用于唯一标识一个应用。 NFC应用的AID相关操作,包括注册和删除应用的AID、查询应用是否是指定AID的默认应用、获取应用的AID等 …...
变压器耐压试验电压及电源容量的计算
被试变压器的额定电压为(11081. 25%) /10. 5kV, 联接组标号为 YNd11。 试验时高压分接开关置于第 1 分接位置, 即高压侧电压为 126kV, 高、 低压电压比 K1126/(√310. 5) 6. 93。 现以 A 相试验…...
uniapp实现底部弹出菜单选择
其实uniapp有内置的组件,不用自己去实现,类似于这样: uni.showActionSheet({itemList: [菜单一, 菜单二, 菜单三],success: function (res) {console.log(选中了第${res.tapIndex 1}个菜单);},fail: function (res) {console.log(res.errMs…...
14. 线性代数 - 线性方程组
文章目录 线性方程组矩阵行列式全排列和逆序数N阶行列式(非)齐次线性方程Hi,大家好。我是茶桁。 结束了「微积分」部分的学习之后我们稍作休整,今天正式开始另外一部分:「线性代数」的学习。小伙伴们放松完回来要开始紧张起来了。 我们之前说过,不管是哪一个工程学科,根…...
C++QT day4
仿照string类,完成myString类 #include <iostream> #include <cstring> using namespace std; class myString {private:char *str; //记录c风格的字符串int size; //记录字符串的实际长度public://无参构造myString():size(10){s…...
Python中的 if __name__ ==‘main‘
你编写的程序迟早需要创建目录以便在其中存储数据。 os 和 pathlib 包含了创建目录的函数。我们将会考虑如下方法: | 方法 | 描述 | | -------------------- | -------------------------- | | os.mkdir() | 创建单个子目录 | | os.makedirs() | 创建多个目录&…...
github 创建自己的分支 并下载代码
github创建自己的分支 并下载代码 目录概述需求: 设计思路实现思路分析1.进入到master分支,git checkout master;2.master-slave的个人远程仓库3.爬虫调度器4.建立本地分支与个人远程分支之间的联系5.master 拓展实现 参考资料和推荐阅读 Survive by day…...
算法:贪心---跳一跳
1、题目: 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 2…...
机器学习入门教学——梯度下降、梯度上升
1、简介 梯度表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(梯度的方向)变化最快,变化率(梯度的模)最大,可理解为导数。梯度上升和梯度下降是优化算法中常用的…...
BUUCTF Reverse/[羊城杯 2020]login(python程序)
查看信息,python文件 动调了一下,该程序创建了一个线程来读入数据,而这个线程的代码应该是放在内存中直接执行的,本地看不到代码,很蛋疼 查了下可以用PyInstaller Extractor工具来解包,可以参考这个Python解包及反编译…...
indexDB localForage
一、前言 前端本地化存储算是一个老生常谈的话题了,我们对于 cookies、Web Storage(sessionStorage、localStorage)的使用已经非常熟悉,在面试与实际操作之中也会经常遇到相关的问题,但这些本地化存储的方式还存在一些…...
Spring Boot开发时Java对象和Json对象互转
🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,…...
C++ 多态
引例: #include<iostream> using namespace std; class Animal { public:void speak(){cout<<"动物在说话"<<endl;} }; class Cat:public Animal { public:void speak(){cout<<"小猫在说话"<<endl;} }; void Do…...
LeetCode 之 二分查找
网址: LeetCode 704.二分查找 算法模拟: Algorithm Visualizer 在线工具: C 在线工具 如果习惯性使用Visual Studio Code进行编译运行,需要C11特性的支持,可参考博客: VisualStudio Code 支持C11插件配…...
【性能测试】中间件优化
1、Tomcat 优化连接数、线程池 打开tomcat安装目录\conf\server.xml文件,在server.xml中 有以下配置: tomcat HTTP/1.1 <Connector port"8080" protocol"HTTP/1.1" maxThreads"1000" acceptCount"1500" c…...
【算法】查找类——二分查找算法
二分查找算法算法总结 算法描述 该算法属于查找算法。当需要从有序数组中查找某一元素时,可以使用该算法进行查找。(本文章假设数组是升序排列的数组) 算法思想 每次进行对半查找,获取中间元素值,然后与目标值进行…...
Ansible FIle模块,使用Ansible File模块进行文件管理
当使用 Ansible 进行自动化配置和管理时,file 模块是一个强大的工具,用于在目标主机上创建、修改和删除文件和目录。它提供了一种简单而灵活的方式来处理文件系统操作。在本文中,我们将详细介绍如何使用 Ansible 的 file 模块。 1. 创建文件 …...
索尼mp4变成rsv修复案例(ILME-FX3)
索尼mp4的修复案例讲过很多,这次是索尼的ILME-FX3也算是一个畅销的机型,一般索尼没有封装的文件是RSV文件,但是极少遇到有多个RSV文件的,下边我们来讲下这个特殊案例。 故障文件:4个RSV文件,大小在1.78G~28G多 故障现…...
抓拍摄像机开关量控制4K高清手机远程看图建筑生长定时缩时相机
作为物联网数据采集解决方案专业提供商,数采物联网小编daq-iot 在这里做以下内容介绍,并诚挚的欢迎大家讨论和交流。 项目案例参考视频: https://www.bilibili.com/video/BV1Kp4y1T7wQ/?spm_id_from333.999.0.0 4K高清太阳能供电定时拍照相机,通过光…...
c++使用http请求-drogon框架
创建drogon框架 drogon_ctl create project test_ctrl添加一个控制器 进入controllers目录下 drogon_ctl create controller -h check_ctrl编写主函数 #include <drogon/drogon.h> int main() {//Set HTTP listener address and port//drogon::app().addListener("…...
幼儿棒球运动宣传介绍·野球6号位
幼儿棒球运动宣传介绍 1. 棒球对幼儿成长的重要性 棒球运动对幼儿协调能力和团队协作的培养 棒球运动对幼儿协调能力和团队协作的培养非常重要。通过棒球运动,孩子们可以学习如何与队友合作,如何在压力下保持冷静,以及如何快速做出决策。这…...
grpc多语言通信之GO和DART
都是一个吗生的,找下例子 上一篇文章说到go实现的grpc方法已经实现了一个grpc的server端, 注意: 这两个项目的.proto文件应当是完全一致的,只是方法用各自的语言实现罢了 报错了: Caught error: gRPC Error (code: 12, codeName: UNIMPLEMENTED, message: grpc: Decompresso…...
基于FPGA的RGB图像转Ycbcr实现,包括tb测试文件以及MATLAB辅助验证
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 将FPGA的数据导入到matlab进行显示 2.算法运行软件版本 Vivado2019.2 matlab2022a 3.部分核心程序 timescale 1ns / 1ps // // Company: // E…...
sever2012做网站/中国最好的营销策划公司
在创建python包的过程中,IDE都会在包根目录下创建一个__init__.py文件,该Python文件默认是空的.目录结构如下: Pycharm下的package树结构: 在Finder中的目录结构: 从Finder中的目录就可以看出来,每个packag…...
wordpress图片清理/成都网络推广外包公司哪家好
在前阵子项目改造中,需要利用先前的S7-200 PLC与ifix进行通讯,故而,在做好上位机后,在现场实际测试了下。通过CP243-1以太网模块,顺利与KEPWARE建立连接,其中当然也有些要点要注意: 1.在kepware…...
网络服务器忙请稍后重试怎么办/曲靖seo
每个源文件只能有一个public class一个源文件可以有任意多个non-public classpublic class应该和源文件有着相同的名字,并且源文件应该以.java为后缀如果一个class定义在一个package内,package 语句必须是源文件的第一行代码如果有import语句,…...
网站建设有生意吗/搜索引擎优化排名品牌
Kubernetes 是 Google 基于 Borg 开源的容器编排调度,用于管理容器集群自动化部署、扩容以及运维的开源平台。作为云原生计算基金会 CNCF(Cloud Native Computing Foundation)最重要的组件之一(CNCF 另一个毕业项目 Prometheus &a…...
wordpress+获得子类id/2023新闻大事件摘抄
有人说改系统配置文件,虽说对geek们没啥,但是有一个更方便的方法,更好记。只需记住一个软件: GNOME Color Chooser。 安装完这个软件之后,选择Specific标签,更改Tooltips中的前景色(字体颜色&…...
不会编程怎么做网站/抖音搜索优化
当从后台获取到数据后,数据将传入app.js中的各个控制,之后将数据绑定到ion-view当中,index.html作为公用模板显示红色区域的内容。...