[BJOI 2018]染色】的更多相关文章

题意:求01成立. 并查集维护,记录一个变量判断决策. #include<bits/stdc++.h> using namespace std; #define int long long const int maxn = 4000010; int f[maxn]; inline int find(int x){ return x == f[x]?x : f[x] = find(f[x]); } signed main() { ios::sync_with_stdio(false); int…
传送门 Description 一个长度为\(N\)的序列, 每个位置都可以被染成 \(M\)种颜色中的某一种. 出现次数恰好为 \(S\)的颜色种数有\(i\)种, 会产生\(w_i\)的愉悦度. 对于所有染色方案, 能获得的愉悦度的和对\(1004535809\)取模的结果. Solution  \[ ans=\sum_{i=0}^{lim} w_i\cdot num_i \] how to get \(num_i\)? \(f_i\) : the number of occurrences…
题意 https://loj.ac/problem/2527 思路 设 \(f(k)\) 为强制选择 \(k\) 个颜色出现 \(s\) 种,其余任取的方案数. 则有 \[ f(k)={m\choose k}{n\choose sk}{(sk)!\over(s!)^k}(m-k)^{n-sk} \] 不难看出,这个方案可能包括了超过 \(k\) 种颜色,也有重复的方案,所以恰有 \(k\) 个颜色出现 \(s\) 种的方案 \(ans_k\) 满足 \[ ans_k=\sum_{i=k}^{\m…
Description 题库链接 给你一棵 \(n\) 个结点的有根树, \(m\) 次询问这棵树上一段路径上所有节点深度的 \(k\) 次方和. \(1\leq n\leq 300000,1\leq k\leq 50\) Solution 树剖之后维护 \(50\) 个前缀和数组. 只有刷水题才能维持得了生活这样子... Code #include <bits/stdc++.h> using namespace std; const int N = 300000+5, yzh = 99824…
[题目链接] 点击打开链接 [算法] 预处理i^k的前缀和,对于每次询问,树上倍增即可 时间复杂度 : O(nk + mlog(n)) [代码] #include<bits/stdc++.h> using namespace std; #define MAXK 55 #define MAXN 300010 #define MAXLOG 20 ; struct Edge { int to,nxt; } e[MAXN<<]; int n,x,i,j,y,q,k,Lca,tot; int…
bjoi 2018 染色 推了个错误结论得了60分? 题目大意: 一个无重边和自环的无向图,并且对每个点分别给了一个大小为2的颜色集合,只能从这个集合中选一种颜色给这个点染色 求一个染色方案使得没有两个有边相连的点被染了相同的颜色 求是否无论颜色集合是什么,均有办法按照要求染色 思路: #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstri…
bjoi 2018 求和 唯一一道可能切的题一个数组还没开long long就成0分了 题目大意: 一棵有根树,并且希望多次询问这棵树上一段路径上所有节点深度的k次方和,而且每次的k可能是不同的 此处节点深度的定义是这个节点到根的路径上的边数 思路: 考试的时候随便写了个树剖 剖下来之后搞五十个次方的前缀和 然后一个数组乘起来没开long long #include<iostream> #include<cstdio> #include<cmath> #include&…
\(\mathcal{Description}\)   Link.   用 \(m\) 种颜色为长为 \(n\) 的序列染色,每个位置一种颜色.对于一种染色方案,其价值为 \(w(\text{出现恰 }s\text{ 次的颜色种数})\)(\(w(0..m)\) 给定),求所有染色方案的价值和.   \(n\le10^7\),\(m\le10^5\),答案对 \(p=1004535809=479\times2^{21}+1\) 取模. \(\mathcal{Solution}\)   记 \(l…
题目链接 戳我 \(Solution\) 观察题目发现恰好出现了\(s\)次的颜色有\(k\)种,不太好弄. 所以我们设\(a[i]\)表示为恰好出现了\(s\)次的颜色有至少\(i\)种的方案数,然后容斥一下 我们看一看\(a[i]\)怎么求? 这很明显可以一眼看出来 \[a[i]=C_m^i*C_n^{is}*(m-i)^{n-is}*\frac{(is)!}{{s!}^i}\] 在\(m\)个颜色中选则\(i\)个,在\(n\)个位置选择\(i*s\)个,将这\(i*s\)个数全排列(有重…
P3177 [HAOI2015]树上染色 题目描述 有一棵点数为\(N\)的树,树边有边权.给你一个在\(0\) ~ \(N\)之内的正整数\(K\),你要在这棵树中选择\(K\)个点,将其染成黑色,并将其他的\(N-K\)个点染成白色 . 将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间的距离的和的受益.问受益最大值是多少. 输入输出格式 输入格式: 第一行包含两个整数 \(N, K\) .接下来 \(N-1\) 行每行三个正整数 \(fr, to, dis\) , 表示该树中存在一…