当前位置:网站首页>2021 ICPC regional competition (Shanghai) g.edge groups (tree DP)
2021 ICPC regional competition (Shanghai) g.edge groups (tree DP)
2022-07-03 17:09:00 【Elucidation】
Edge set

quote lwz_159 My blog
C o d e : Code: Code:
#include<bits/stdc++.h>
#include<unordered_map>
#define mem(a,b) memset(a,b,sizeof a)
#define cinios (ios::sync_with_stdio(false),cin.tie(0),cout.tie(0))
#define sca scanf
#define pri printf
#define forr(a,b,c) for(int a=b;a<=c;a++)
#define rfor(a,b,c) for(int a=b;a>=c;a--)
#define endl "\n"
//[ Blog address ]:https://blog.csdn.net/weixin_51797626?t=1
using namespace std;
inline void read(int& x) {
x = 0; int f = 1; 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(); } x *= f; }
void write(int x) {
if (x < 0) putchar('-'), x = -x; if (x >= 10) write(x / 10); putchar(x % 10 + '0'); }
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> PII;
const int N = 100010, M = 200010, MM = N;
int INF = 0x3f3f3f3f, mod = 998244353;
ll LNF = 0x3f3f3f3f3f3f3f3f;
int n, m, k, T, S, D;
int h[N], ne[M], e[M], idx;
ll dp[N];
inline void add(int a, int b) {
e[idx] = b, ne[idx] = h[a], h[a] = idx++;
}
// Determine the edges that can contribute according to the number of edges of the subtree where the child node is located
// If the number of sides is even ( Pairing within oneself ), The edges of the current node and child nodes contribute
// Otherwise, odd numbers will occupy this side
bool dfs(int x, int fa) {
int cnt = 0;
dp[x] = 1;
for (int i = h[x]; ~i; i = ne[i]) {
int j = e[i];
if (j == fa)continue;
if (!dfs(j, x))cnt++;
dp[x] = (dp[x] * dp[j]) % mod;
}
for (int i = 1; i <= cnt; i += 2)dp[x] = (dp[x] * i) % mod;
return cnt & 1;
}
int main() {
cinios;
cin >> n;
mem(h, -1);
forr(i, 1, n - 1) {
int a, b;
cin >> a >> b;
add(a, b), add(b, a);
}
dfs(1, -1);
cout << dp[1];
return 0;
}
/* */
边栏推荐
- What is your income level in the country?
- How to delete a specific line from a text file using the SED command?
- New library online | cnopendata China bird watching record data
- Static program analysis (I) -- Outline mind map and content introduction
- CC2530 common registers for port initialization
- 线程池:业务代码最常用也最容易犯错的组件
- RedHat 6.2 配置 Zabbix
- 执行脚本不认\r
- 免费数据 | 新库上线 | CnOpenData中国保险中介机构网点全集数据
- Free data | new library online | cnopendata complete data of China's insurance intermediary outlets
猜你喜欢
![[error reporting] omp: error 15: initializing libiomp5md dll, but found libiomp5md. dll already initialized.](/img/a0/4fc0e0741aad2885873e60f2af3387.jpg)
[error reporting] omp: error 15: initializing libiomp5md dll, but found libiomp5md. dll already initialized.

免费数据 | 新库上线 | CnOpenData中国保险中介机构网点全集数据

MySQL Basics

Kotlin学习快速入门(7)——扩展的妙用

聊聊接口优化的几个方法

大变局!全国房价,跌破万元大关

Mysql database -dql

C语言按行修改文件

Recommendation of good books on learning QT programming
The way of wisdom (unity of knowledge and action)
随机推荐
Host based intrusion system IDS
RedHat 6.2 configuring ZABBIX
One brush 148 force deduction hot question-5 longest palindrome substring (m)
vs code 插件 koroFileHeader
Meituan side: why does thread crash not cause JVM crash
BYD and great wall hybrid market "get together" again
29: Chapter 3: develop Passport Service: 12: develop [obtain user account information, interface]; (use VO class to package the found data to meet the requirements of the interface for the returned da
What kind of material is 14Cr1MoR? Analysis of chemical composition and mechanical properties of 14Cr1MoR
CC2530 common registers for ADC single channel conversion
Squid 服务启动脚本
How to delete a specific line from a text file using the SED command?
SSH连接远程主机等待时间过长的解决方法
[combinatorics] recursive equation (the relationship theorem between the solution of the recursive equation and the characteristic root | the linear property theorem of the solution of the recursive e
PHP online confusion encryption tutorial sharing + basically no solution
[combinatorics] recursive equation (general solution structure of recursive equation with multiple roots | linear independent solution | general solution with multiple roots | solution example of recu
Kotlin学习快速入门(7)——扩展的妙用
How to judge the region of an IP through C?
在iptables防火墙下开启vsftpd的端口
[JDBC] API parsing
Informatics Olympiad all in one YBT 1175: divide by 13 | openjudge noi 1.13 27: divide by 13