摘要: 题意 一共有 \(n\) 个人,他们开始互不认识,而每天早上不认识的两个人会变成朋友。一共有 \(m\) 天,每天晚上有的人要去旅行,去旅行的人必须满足有至少 \(k\) 个朋友也去旅行。求每天去旅行的最大人数。 思路 读题后发现,想要判断一个人能否去旅行,就要知道他的朋友能否旅行。这是一个“套娃” 阅读全文
posted @ 2025-11-02 22:16 CharlieCai2024 阅读(30) 评论(0) 推荐(0)
摘要: 题意 给定一棵 \(n\) 个结点的树,第 \(i\) 个点有颜色 \(c_i\),其中 \(c_i=0\) 为白色,\(c_i=1\) 为黑色。有 \(q\) 次询问,每次询问给定一个正整数 \(u\),要求将结点 \(u\) 的颜色反转,并判断修改后的树上的所有黑点是否构成一条链。询问不独立。 阅读全文
posted @ 2025-11-02 22:16 CharlieCai2024 阅读(24) 评论(0) 推荐(0)
摘要: 题意 给定一棵无根树,求其中本质不同的独立集的个数。 思路 首先,由于要求统计独立集的个数,所以我们选定的点不能相邻。考虑 dp,设 \(f_{i,0}\) 表示 \(i\) 的子树内不选 \(i\) 的独立集个数,\(f_{i,1}\) 表示 \(i\) 的子树内选 \(i\) 的独立集个数。 接 阅读全文
posted @ 2025-11-02 22:16 CharlieCai2024 阅读(31) 评论(0) 推荐(0)
摘要: 题意 简化版题意:给定一个森林,所有节点初始为白色,可以花费 \(D_i\) 将第 \(i\) 个节点染成黑色。定义一个节点如果是黑色节点,且与它直接相连的点中有黑色节点,则这个点是“好的”。有 \(Q\) 个询问,每次询问在花费的总代价不超过 \(S_i\) 的情况下最多能将几个点变为"好的“点。 阅读全文
posted @ 2025-11-02 22:15 CharlieCai2024 阅读(25) 评论(0) 推荐(0)
摘要: 题意 给定一棵树,树的边上有字符串,字符串可以按照由父亲到儿子的方向拼接,求模式串 \(t\) 出现的次数。 思路 直接使用哈希。提前预处理出模式串 \(t\) 对应的哈希值,在搜索时计算当前点到儿子之间的边上的字符串对应的哈希值,并将其加入数组中,这样我们就得到了根节点到当前节点之间所有边上字符串 阅读全文
posted @ 2025-11-02 22:14 CharlieCai2024 阅读(26) 评论(0) 推荐(0)
摘要: 首先,显然不得分的题目不做,因为这样不仅增加时间,还可能导致一些原来符合限制的题目不符合限制,不能使答案更优。 于是,我们发现最终的答案 \(ans\) 不会超过所选题目中最小的 \(t_i\),所以我们选题时应该尽量选 \(t_i\) 较大的题目。考虑将所有题目按 \(t_i\) 从大到小排序,依 阅读全文
posted @ 2025-11-02 22:14 CharlieCai2024 阅读(16) 评论(0) 推荐(0)
摘要: 首先思路是很清晰的,该删的数从小到大开始删,这样在删到当前数的时候,比当前数小的数可以尽量少,能选的区间自然就更大了。 考虑如何实现,维护一个 set,从小到大遍历每个数,若当前数不需要被删除,就将其下标加入 set 中;若需要删除就在 set 中二分出恰好比当前数位置后的数,也就是区间的 \(r+ 阅读全文
posted @ 2025-11-02 22:13 CharlieCai2024 阅读(55) 评论(0) 推荐(0)
摘要: 题意 有两个整数 \(a,b\),进行 \(t\) 轮操作,每轮操作先在 \([-k,k]\) 范围内取一个整数加到 \(a\) 中,再在 \([-k,k]\) 范围内取一个整数加到 \(b\) 中,求最终使 \(a > b\) 的方案数。 思路 记 \(a\) 增加的总和为 \(pa\),\(b\ 阅读全文
posted @ 2025-11-02 22:12 CharlieCai2024 阅读(28) 评论(0) 推荐(0)
摘要: 题意 给定一个字符串 \(s\),求它有多少个不同的子串 \(t\) 满足可以把 \(s\) 分割成若干个子串,使得每个子串要么等于 \(t\),要么等于 \(\texttt{"a"}\)。 思路 首先如果字符串全部由 a 组成那就直接输出 \(|s|-1\) 即可。 接下来考虑正常情况,由于分割完 阅读全文
posted @ 2025-11-02 22:12 CharlieCai2024 阅读(21) 评论(0) 推荐(0)
摘要: 思路 考虑模拟传染过程,对于每一个已经被感染的点(下文称为当前点),遍历其能到达的点(下文称为新点),记这条边的边权为 \(w\),分为以下两步: 判断新点能否和当前点在同一天内被感染; 若不能,则从当前点被感染的天数(记为 \(t\))向后找,找到最小的 \(i\) 使得 \(i > t\) 且 阅读全文
posted @ 2025-11-02 22:12 CharlieCai2024 阅读(25) 评论(0) 推荐(0)