随笔分类 - 比赛题解
1
摘要:[比赛链接](https://ac.nowcoder.com/acm/contest/57361) # C ## 题解 **知识点:位运算,贪心。** 我们用分段的思想考虑大小关系,若在同一段则大小不能确定,一开始为 。 我们按位从高到低考虑,某位如果 产生了 ,
阅读全文
摘要:[比赛链接](https://ac.nowcoder.com/acm/contest/57360) # A ## 题解 ### 方法一 **知识点:并查集,树形dp,背包dp。** 因为需要路径中的最大值,因此考虑按边权从小到大加入图中,保证通过这条边产生贡献的点对已经全部出现。 在加边的同时进行树
阅读全文
摘要:[比赛链接](https://ac.nowcoder.com/acm/contest/57359) # A ## 题解 **知识点:莫队,树状数组。** 区间询问显然可以离线莫队,考虑端点移动对答案的影响。 不妨先考虑右端点右移一个位置,对答案的改变。假设右端点右移后在 ,我们先要知道 $[
阅读全文
摘要:[比赛链接](https://ac.nowcoder.com/acm/contest/57358) # A ## 题解 **知识点:KMP,构造。** 考虑构造全 串,至少有一个可行。 我们只需要考虑到 的border ,即 : 1. 当 $t'+s
阅读全文
摘要:[比赛链接](https://ac.nowcoder.com/acm/contest/57357) # A ## 题解 **知识点:数学。** 当 时,当且仅当 可行。 当 时,一定可行,答案为 。 时间复杂度 空间
阅读全文
摘要:[比赛链接](https://ac.nowcoder.com/acm/contest/57356) # D ## 题解 **知识点:贪心。** 首先,因为第一个人喜欢吃的可能会被后面的人选中,因此直接选最喜欢吃的可能会浪费机会。所以,我们考虑先看后面的人怎么选,就是倒着贪心,我们考虑证明。 假设当前
阅读全文
摘要:[比赛链接](https://ac.nowcoder.com/acm/contest/57355) # A ## 题解 **知识点:构造。** 设任意字符串为 ,为了使得 时结果不有序,考虑将其中 一组 固定反序,同时 时一定不会反序。
阅读全文
摘要:比赛链接 A 题解 知识点:模拟。 如题。 代码 #include <bits/stdc++.h> using namespace std; using ll = long long; int main() { std::ios::sync_with_stdio(0), cin.tie(0), co
阅读全文
摘要:比赛链接 A 题解 知识点:前缀和,二分。 找到小于等于 的最后一个物品,往前取 个即可,用前缀和查询。 时间复杂度 空间复杂度 代码 #include <bits/stdc++.h> using namespace std; usin
阅读全文
摘要:比赛链接 A 题解 知识点:数学。 算一下发现 最好, 并列, 以后递减。于是,特判 ,其他取最小值。 (众所周知, 进制最好qwq。 时间复杂度 空间复杂度 代码 #include <bits/stdc++.h> using n
阅读全文
摘要:比赛链接 A 题解 知识点:贪心。 把所有正偶数除成奇数,即可。 (人傻了没加 WA2 时间复杂度 空间复杂度 代码 #include <bits/stdc++.h> using ll = long long; using namespace std; int
阅读全文
摘要:比赛链接 A 题解 知识点:模拟。 显然。 (用char输入到一半直接给答案跳出,WA了两小时,无话可说。 时间复杂度 空间复杂度 代码 #include <bits/stdc++.h> #define ll long long using namespace std;
阅读全文
摘要:比赛链接 C 题解 方法一 知识点:思维。 先统计没有出现的数,每个都可以随便放,所以作为补位用的。 将原数组左移一位作为预定的答案数组,然后开始检查。如果和原数组一样,则用补位数字填充,如果不一样就不动。 这样做是肯定能构造出一个合法的数组的,因为左移以后这个数字无论重复不重复一定能有一个是和对应
阅读全文
摘要:比赛链接 A 题解 知识点:数学,构造。 题目要求构造一个长为 的序列 , 自选,使得 的无限循环序列 中任意连续 个数中都存在数 。因此,容易想到从起点 开始每隔 个数就填一次 ,即在位置 $(pos_i
阅读全文
摘要:比赛链接 A 题解 知识点:图论,dp。 暴力建图,连接所有点的双向通路,除了原点是单向的,并且把路径长度作为权值。 随后,从原点出发(,其他点负无穷,保证从原点出发),按照权值从大到小(大的先走小的后走,相等属于同一阶段,满足拓扑序)进行dp。 对于路径 的状态
阅读全文
摘要:比赛链接 A 题解 知识点:贪心,背包dp。 注意到交换邻项不影响其他的结果,可以通过邻项交换证明选择顺序,假设a在b前更优: $$ \Sigma + w_a\Pi + w_bp_a\Pi + \Sigma' \geq \Sigma + w_b\Pi + w_ap_b\Pi + \Sigma'\ w
阅读全文
摘要:比赛链接 A 题解 知识点:LCA。 队友写的,俺不会qwq。预处理出关键点序列的在树A B上的前缀LCA和后缀LCA,枚举去掉的关键节点并使用前后缀LCA算出剩余节点的LCA比较权值即可。 时间复杂度 空间复杂度 代码 #include<bits/stdc
阅读全文
摘要:比赛链接 A 题解 知识点:贪心。 将区间按左端点排序,合并区间,记录所有区间之间断开的长度即可。 时间复杂度 空间复杂度 代码 #include <bits/stdc++.h> #define ll long long using namespace std
阅读全文
1