摘要: 原题链接 题意 树中任意一条路径上黑色点的数量不超过两个,请问存在多少种树 分析 先随便找一个节点作为根节点,然后分类讨论 假如根到叶子节点的路径上有两个黑色节点,则不能再添加其他点了 如果根到叶子节点的路径上有一个黑色节点,则可以还可以在不在这条路径上的地方放黑色节点 在弄清楚规则后,就可以用dp 阅读全文
posted @ 2024-07-19 21:33 纯粹的 阅读(10) 评论(0) 推荐(0)
摘要: 原题链接 题解 dp+多次优先队列 设 \(dp[i]\) 为 \([1,i]\) 区间内,前 \(k\) 个最大值(有可能不足k个)(注意 \(dp[i]\) 是一个序列) 则 \(dp[i]=\{dp[j][t]+a[j+2][i],j\in[0,i-2],t\in[0,top_j]\} ,\s 阅读全文
posted @ 2024-07-19 19:23 纯粹的 阅读(27) 评论(0) 推荐(0)
摘要: 原题链接 题解 \(k*k\) 矩阵,每行选一个,求前 \(k\) 小的值 等价于 \((k-1)*k\) 矩阵每行选一个构成的前 \(k\) 小的值任选一个,与第 \(k\) 行 \(k\) 个数任选一个,其和的前 \(k\) 小 无限递推。。。。 变成了两个长度为 \(k\) 的序列,从两个序列 阅读全文
posted @ 2024-07-19 18:21 纯粹的 阅读(17) 评论(0) 推荐(0)
摘要: 原题链接 题解 在一个章节更新过后,更新其周围章节的首次阅读时间,如果周围章节在其后面,时间不变,如果在其前面,时间加一 当一个章节的前置章节都更新完之后再更新其周围章节 code #include<bits/stdc++.h> #define ll long long using namespac 阅读全文
posted @ 2024-07-19 16:12 纯粹的 阅读(16) 评论(0) 推荐(0)
摘要: 原题链接 题解 构造题,先想特殊情况再验证 易得当 \(n<k\) 时不成立 当 \(n=k\) 时输出 1 否则,第一个柜台卖的价格 \(p_1 \geq 2\) 且最多能卖 \(\lfloor\frac{n}{p_1} \rfloor + n\mod p_1\) 个,且最大值出现在 \(p_1= 阅读全文
posted @ 2024-07-19 14:39 纯粹的 阅读(25) 评论(0) 推荐(0)
摘要: 原题链接 题解 假如 \(y=1\) 该如何添加? 然后逐步推导 code #include<bits/stdc++.h> #define ll long long using namespace std; int a[200005]; bool cmp(int x,int y) { if(x%2! 阅读全文
posted @ 2024-07-19 13:47 纯粹的 阅读(26) 评论(0) 推荐(0)
摘要: 原题链接 题解 往内看,一个 n 个节点的多边形,最多能划分 n-2 个三角形(对于 ( k + 1 ) 个顶点的多边形,可以选择任意一个顶点,并引出一条条对角线把它分割成一个三角形和一个剩下的 ( k ) 边形。) 往外看,而在图中,如果两个关键节点的距离==2,ans++ code #inclu 阅读全文
posted @ 2024-07-19 12:46 纯粹的 阅读(17) 评论(0) 推荐(0)