题目地址:CF1139C Edgy Trees 红黑树 \(ans\) 应该等于总数(\(n^k\))减去不含黑色边的序列数量 不含黑色边就意味着一个序列只能在一个红色联通块中 一个红色联通块中的序列数量应该是点数的 \(k\) 次方 求联通块用dfs用并查集都可以 然后快速幂一下再一减就是 \(ans\) #include <bits/stdc++.h> #define ll long long using namespace std; const int N = 1e5 + 6, P =…
C. Edgy Trees time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given a tree (a connected undirected graph without cycles) of nn vertices. Each of the n−1n−1 edges of the tree is col…
链接 [https://codeforces.com/contest/1139/problem/C] 题意 给你n个点,n-1个边,无向的.有red和black的. k表示经过这k个点.可以跨其他点 分析 先算所有的,再减去不符合即可以了.不符合就是都走0的那种 用dfs求联通块并记录该块有多少个点就可以了,看代码吧 代码 #include<bits/stdc++.h> using namespace std; #define ll long long const int N=2e5+10;…
一.题面 here 二.分析 这题刚开始没读懂题意,后来明白了,原来就是一个数连通块里点数的问题.首先在建图的时候,只考虑红色路径上的点.为什么呢,因为为了不走红色的快,那么我们可以反着想只走红色的路径,这样把所有的可能数再减去只走红色路径的数就是最终的答案了.这里要注意的是,如果连通块里只有一个点,那么就是K个点都是这个点的情况,根据题意是不满足的,也要减去. 三.AC代码 #include<bits/stdc++.h> using namespace std; typedef long l…
http://codeforces.com/contest/1139 A. Even Substrings You are given a string s=s1s2…sns=s1s2…sn of length nn, which only contains digits 11, 22, ..., 99. A substring s[l…r]s[l…r] of ss is a string slsl+1sl+2…srslsl+1sl+2…sr. A substring s[l…r]s[l…r] …
没打,简单补档 C.Edgy Trees 容斥,把黑边断掉数联通块,每个联通块贡献$siz^k$ #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ,mod=1e9+; int n,k,t1,t2,t3,tot,aset[N],siz[N]; int Finda(int x) { return x==aset[x]?x:aset[x]=Finda(aset[x]); }…