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

传送门 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…
\(\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\)个数全排列(有重…
Description : 有一棵点数为 N 的树,树边有边权.给你一个在 0~ N 之内的正整数 K ,你要在这棵树中选择 K个点,将其染成黑色,并将其他 的N-K个点染成白色 . 将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间的距离的和的受益.问受益最大值是多少. Solution: 这道题的思路很好,数据较强,可以看出这是道树形dp 怎么设计状态呢?dp[x][j]表示以x为根的子树有j个点染成黑色的最大收获 然后,然后就GG了 原来这道题是考虑贡献,强啊 状态改为以x的根的子…
题意:求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…
无聊了开一套省选题刷刷--u1s1 感觉三个题都不错,难度也挺有梯度,是一道标准的省选难度的题(话说 CSP 前你刷省选题干嘛/ts/ts) 小 C 珂海星 T1:P4495 [HAOI2018]奇怪的背包(基础数论) 一开始看错题了,以为是不可做题( 根据斐蜀定理,假设取出的体积集合为 \(S\),那么可以拼出 \(w\) 的充要条件是 \(\gcd_{x\in S}\gcd(x,P)\mid\gcd(w,P)\),不难发现 \(\gcd(x,P),\gcd(w,P)\) 肯定是 \(P\)…
bjoi 2018 染色 推了个错误结论得了60分? 题目大意: 一个无重边和自环的无向图,并且对每个点分别给了一个大小为2的颜色集合,只能从这个集合中选一种颜色给这个点染色 求一个染色方案使得没有两个有边相连的点被染了相同的颜色 求是否无论颜色集合是什么,均有办法按照要求染色 思路: #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstri…
Description 题库链接 给出一棵 \(n\) 个节点的树,边有权值.让你将树上 \(k\) 个点染黑,剩余 \(n-k\) 个点染白.染色后记一种染色方案的价值为黑点间两两距离和以及白点间两两距离和.求最大价值. \(0\leq k\leq n\leq 2000\) Solution 定义状态 \(f_{u,i}\) 表示以 \(u\) 为根的子树中选出了 \(i\) 个黑点的子树中最大价值. 转移的话就是考虑当前节点和枚举的儿子间的边被计算了几次. 树上背包复杂为 \(O(n^2)\…
P3177 [HAOI2015]树上染色 题目描述 有一棵点数为\(N\)的树,树边有边权.给你一个在\(0\) ~ \(N\)之内的正整数\(K\),你要在这棵树中选择\(K\)个点,将其染成黑色,并将其他的\(N-K\)个点染成白色 . 将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间的距离的和的受益.问受益最大值是多少. 输入输出格式 输入格式: 第一行包含两个整数 \(N, K\) .接下来 \(N-1\) 行每行三个正整数 \(fr, to, dis\) , 表示该树中存在一…