首页 > TAG信息列表 > Haoi2018
题解 [HAOI2018] 染色
题目链接 Luogu Loj 题目描述 对一个长度为 \(n\) 的序列染色,颜色一共有 \(m\) 种,对于每一种染色方案,设有 \(u\) 种颜色恰好出现了 \(s\) 次,则将答案加 \(w_u\) ,求答案 其中 \(n \leq 10^7, m \leq 10^5, s \leq 150\),并将答案对 \(1004535809\) 取模 分析 下面的式子虽然有点多,但【HAOI2018】染色
【HAOI2018】染色 by AmanoKumiko Description 为了报答小\(C\)的苹果, 小\(G\)打算送给热爱美术的小\(C\)一块画布, 这块画布可以抽象为一个长度为\(N\)的序列, 每个位置都可以被染成\(M\)种颜色中的某一种. 然而小\(C\)只关心序列的\(N\)个位置中出现次数恰好为\(S\)的颜色种数,HAOI2018 染色
设 G[k] 表示恰好出现 S 次的颜色恰好有 k 种, 数值为方案总数。设 n = min(M, floor(N/S)), 这道题的答案就是 Σ1≤i≤n Wi × G[i]。 设 F[k] 表示恰好出现 S 次的颜色至少有 k 种, 数值为方案总数。这个很好算, 先选出颜色 \(\dbinom Mk\), 然后把没选出的颜色当成无色, 按照可重排P4494 [HAOI2018]反色游戏
P4494 [HAOI2018]反色游戏 题意 给你一个无向图,图上每个点是黑色或者白色。你可以将一条边的两个端点颜色取反。问你有多少种方法每个边至多取反一次使得图上全变成白色的点。 思路 若任意一个连通块黑色点的个数为奇数那么无解。 先考虑树的情况。发现如果是树,并且黑点个数为偶数BZOJ5305 HAOI2018 苹果树
好题qwq 写起来不到1k很舒服 自己对期望与计数的能力还是差一点 我们观察这个题 首先我们发现有一个*n! 这个是怎么一回事呢 是因为每添一个节点就会少1个位置但又多出2个位置所以每一次添加的可选位置数就是i 然后呢我们观察这个题有一些很好的性质 比如二叉树 首先根据常见套路我LOJ2524「HAOI2018」反色游戏
LOJ2524「HAOI2018」反色游戏 题面:LOJ 解析 首先考虑一个联通块怎么做。观察到若连通块为一棵树,如果黑点个数为偶数,则有且仅有一组解;反之无解。奇数的情况不难证明,因为一次反色改变黑点的个数总是偶数。现在考虑偶数,用归纳法逐层构造不难得到一组解,考虑如何证明解的唯一性。不难发P4491 [HAOI2018]染色 容斥+NTT
$ \color{#0066ff}{ 题目描述 }$ 为了报答小 C 的苹果, 小 G 打算送给热爱美术的小 C 一块画布, 这块画布可 以抽象为一个长度为 \(N\) 的序列, 每个位置都可以被染成 \(M\) 种颜色中的某一种. 然而小 C 只关心序列的 \(N\) 个位置中出现次数恰好为 \(S\) 的颜色种数, 如果恰 好出HAOI2018染色——容斥
题目大意 loj 思路 设\(f_i\)表示至少出现了i种颜色的方案数 \[ \begin{aligned} f_i&={m \choose i}\times \frac{(s\times i)!}{(s!)^{i}}\times {n\choose s\times i}\times (m-i)^{n-s\times i}\\ f_i&={m \choose i}\times \frac{n!}{(s!)^{i}\times (n-s\times i[HAOI2018]苹果树
[Luogu4492] 一种常规写法 另一种还没看的写法 路径长的期望又乘上 \(n!\) , 因为\(n\)个点的二叉树有\(n!\)种,所以相当于算可能的情况的贡献和. 令 \(f_i\)表示 \(i\) 个节点的子树,根的深度为 \(1\) 时,所有点的期望深度之和(乘 \(i!\) )的值 令 \(g_i\)表示 \(i\) 个节点的子树,期望题解-HAOI2018全套
去冬令营转了一圈发现自己比别人差根源在于刷题少,见过的套路少(>ω<) 于是闲来无事把历年省选题做了一些 链接放的都是洛谷的,bz偷懒放的也是链接 AM.T1 奇怪的背包 Problem HAOI-2018奇怪的背包 Solution 暴力 \(60\),加上送的 \(10\) 有 \(70\) ,暴力进队 首先在模意义下倍数能表达[HAOI2018]苹果树
题目描述 小 C 在自己家的花园里种了一棵苹果树, 树上每个结点都有恰好两个分支. 经过细心的观察, 小 C 发现每一天这棵树都会生长出一个新的结点. 第一天的时候, 果树会长出一个根结点, 以后每一天, 果树会随机选择一个当前树中没有长出过结点 的分支, 然后在这个分支上长出一个新P4492 [HAOI2018]苹果树
题目描述:你现在有n个点,问这n个点所构成N!棵树的值的和,每棵树的值定义为该树中所有点对的距离之和 解析:首先我们对于这种题可以思考一下递推 然后我们就可以dp了,设f[i][j]表示我们已经解决了前i个节点,所有的树的子树的大小为j的个数之和 那么我们每次新加入一个点本质上就区分为BZOJ5305: [HAOI2018]苹果树
传送门 果然只有我这种菜鸡才会用这种菜鸡做法QwQ 对于一类要求期望的题目,有一个无脑的做法: 设概率为 \(f\),期望为 \(g\) 每次合并两个二元组 \(<f_1,g_1>,<f_2,g_2>\) 的方法显然为 \(<f_1\times f_2,g_1\times f_2+f_1\times g_2>\) 对于这一道题,设 \(i\) 个点的树的方案数 \(f_ibzoj 5305 [Haoi2018] 苹果树
传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=5305 【题解】 1 # include <bits/stdc++.h> 2 using namespace std; 3 4 const int M = 2010; 5 6 int n, mod; 7 int C[M][M], fac[M]; 8 9 int main() { 10 cin >> n >> mod; 11[BZOJ5303][HAOI2018]反色游戏(Tarjan)
暴力做法是列异或方程组后高斯消元,答案为2^自由元个数,可以得60分。但这个算法已经到此为止了。 从图论的角度考虑这个问题,当原图是一棵树时,可以从叶子开始唯一确定每条边的选择情况,所以答案为1。 于是首先,对一个连通块,若其中黑点个数为奇数则必然无解,否则考虑求出它的一棵生成树。