02 2022 档案
摘要:「HAOI2008」硬币购物 题解 题意 给出硬币个数和价值,问有多少种方案使总和为 \(S\)。 题解 显然,可以用多重背包解决, 但是对于本题数据范围非常的大,显然是不可以通过的。 可以发现,本题只是完全背包多了一些约束, 完全背包可以选不限个,本题可以选有限个。 那就可以先求完全背包,再减去不
阅读全文
摘要:##「ZJOI2006」三色二叉树 题解 题意 给出一颗二叉树,要求对这颗二叉树染色,可以染成红、绿、蓝三种颜色,要求节点和这个结点的子节点颜色不同,问最多和最少可以染多少个点是绿色。 题解 本题有两个难点,如何存二叉树和求答案。 对于给出的字符串,可以发现这个字符串是以结点 + 子树 的形式呈现的
阅读全文
摘要:[ZJOI2007] 时态同步 题解 题目大意 给出一颗带权值的点数为 \(n\) 的树,问最少操作多少次可以让这棵树的根节点 \(s\) 到这棵树的所有叶子结点距离相等。 题解 显然,树 \(+ \texttt{DP} =\) 树上$\texttt{DP}$。 状态设 \(f_i\) 为以 \(i
阅读全文
摘要:##[模版]最大子树和 题解 前置芝士 树上DP 题目大意 给出一棵树,上面有权值, 求这个数的子树的最大权值和。 解 模板题,就是树上DP。 可以想到只要这个树的子树的权值大于0就可以选择,即加上这个权值。 所以这个DP的转移方程是 \(f_i=\sum_{i=1}^nf_{a_i}[{f_{a_
阅读全文
摘要:树上DP PD上树学树上DP 定义 在树上实现的DP就是树上DP。 树上DP的状态和转移都是与结点和这个结点的子结点有关的。 题 [模版]最大子树和 题解
阅读全文
摘要:「NOIP2011」计算系数 题意 给定一个多项式 \((ax + by)^k\),求多项式展开后$xn ym$项的系数。 解 二项式定理科普 二项式定理 完了,就是板子题。 显然这个多项式还要乘上一个 \(C^n_k\) Code #include <bits/stdc++.h> using i6
阅读全文
摘要:「COCI2019-2020#5」 Zapina 题解 题意 有 \(n\) 个人和 \(n\) 道题,现在把每个题给人,至少有一个下标为 \(i\) 的人得到 \(i\) 道题, 问分配的方案数量 解 考虑用所有的方案数减去不开心的方案数。 所有的方案数就是 \(n^n\) 不开心的方案数用 DP
阅读全文
摘要:CF888D Almost Identity Permutations 题解 题目大意 给出 \(n, k\), 求满足下面条件的数组的个数 至少有 \(n - k\) 位的 \(a_i=i\) 即有 \(k\) 位错放。 解 题目大意可以理解为一个关于错放的问题。 错放问题求解 但是本题有一个“至
阅读全文
摘要:从头开始学数论(2) 前置芝士 欧拉函数 欧拉函数相关 积性函数 对于互质的 \(a, b\) 和一个函数, 如果有 \(f(a\times b) =f(a)\times f(b)\) 就称这个函数是一个积性函数。 完全积性函数 对于任意的 \(a, b\) 和一个函数, 如果有 \(f(a\tim
阅读全文
摘要:二分查找 不断的折半查找, 用 \(log_2\) 的时间可以查找到,效率十分之高。 三分 咕咕咕 二分答案 把答案二分了。 「CH0805」防线 穿越七色虹
阅读全文
摘要:从头开始学数论(1) 筛法 阶乘分解 题意是把一个数的阶乘通过分解质因数的方式分解出来并输出。 质因数分解自然要求质数, 对于本题直接用欧拉筛就可以了。 for (int i = 2; i <= n; i++) { if (!prime[i]) prime[++prime[0]] = i; for
阅读全文
摘要:「CH0805」防线 题意 给出一个数列, 里面至多有 1 个奇数, 其他都是偶数,求这个奇数的大小和位置。 解 是不是看起来很简单?但是这里数列不是直接给出的,会给出 \(n\) 个类型防具, 每个防具有三个参数 \(s, e, d\),分别表示从 \(s\) 到 \(e\) 每隔 \(d\) 有
阅读全文
摘要:穿越七色虹 题意 大概是给出 7 个半圆的圆心和半径,人有一个高度, 人要从 \(0\) 到 \(x_0\) 的位置,问最少加上多少才可以使这个队伍通过。 解 最小化答案考虑二分答案。 如何写 check 是本题的关键, 也是本题的难点。 首先有两点需要满足: 人要站的下 人要走得了 处理第一点 对
阅读全文
摘要:题目大意 给出一个数字, 可以进行反转的操作(选择一个区间 \([1, l]\) 并颠倒这个区间的顺序)。 询问最少多少次操作才可以让原数变成一个偶数。 解题思路 很明显的分类讨论。 偶数 如果原数是偶数就不需要反转了。 奇数 如果是奇数呢? 可以发现, 颠倒一个区间 \([1, l]\) 的顺序可
阅读全文
摘要:P2062 分队问题 题解 题目大意 有 \(N\) 名选手, 现在要把他们分到若干队,每个选手要求他的队伍的人数必须要大于等于 \(a_i\), 求最多可以分多少个队伍。 确定算法 贪心思想 这道题没有标签,差评,初次看题没有任何思路,看到最大化队伍数量就想到了贪心,。 在打代码的过程中发现贪心会
阅读全文
摘要:马上就要考 SCP 了,赶紧写一些题解积累人品 P3855 [TJOI2008]Binary Land 题解 很明显 可以看出这道题就是一个 BFS 的题目,利用 BFS 暴力搜到答案。 题目在讲什么 先输入行数 \(N\) 列数 \(M\),再输入一个 \(N * M\) 的字符串矩阵 有 1 对
阅读全文
摘要:题目大概是 「USACO21OPEN」 Do You Know Your ABCs? 的弱化版 题目大意 给出 7 个数, 他们分别代表 \(a, b, c, a + b, a + c, b + c, a + b + c\) 下文中用 \(A\) 数组表示输入的数。 求 \(a, b, c\)。 注
阅读全文
摘要:DFS序 DFS 序就是DFS得到的序列(简洁明了) DFS 序擅长处理子树的问题, 可以发现 子树是这个子树根节点入栈到出栈的整个序列 DFS 序把子树修改转化为了区间修改的问题。 「HAOI2015」树上操作 要对一个树进行操作, 支持点修改, 子树修改, 查询某个节点到跟节点的距离。 对于树剖
阅读全文
摘要:#295. 「BJWC2010」矩阵距离 又是一道需要真正思考了才可以做出来的水题。 题目描述 给出一个N * M 的01矩阵, 输出每个0到离这个点最近的1的距离。 思考历程 暴力 由于 $N \le 10^3 $ 如果在赛场上出现这个题, 我们优先考虑暴力。 暴力也是很简单,从每个为0的点出发b
阅读全文