2024年3月2日

摘要: Problem T1 累加燃烧度,除以 \(m\) 即为答案。 需要开 unsigned __int128,差评。 T2 若有 \(a,b\) 满足 \(a-c=c-b\),化简此式可得 \(a+b=2c\),说明 \(a+b\) 必须为偶数。 于是我们倒序求一遍后缀偶数个数 \(os_i\) 和奇 阅读全文

posted @ 2024-03-02 21:33 _XOFqwq 阅读(4) 评论(0) 推荐(0) 编辑

摘要: 若某一位 \(i\) 上 \(A_i>B_i\),则显然无解。 否则,建立并查集,然后遍历字符串,若 \(A_i,B_i\) 不在一个集合就合并 \(A_i\) 与 \(B_i\),直到只剩下一个集合,此时的合并总次数即为答案。 为什么呢?因为将 \(A_i,B_i\) 合并的操作可以视为等价于将以 阅读全文

posted @ 2024-03-02 21:32 _XOFqwq 阅读(3) 评论(0) 推荐(0) 编辑

摘要: Problem T1 遍历字符串,拿一个桶统计即可。 T2 当 \(x\) 为中位数时,我们应当尽量的让整个数列的和变小,然后直接在最后一个上加即可。 为了让整个数列有序,和最小的构造的数列应当是 \(0,0,\cdot \cdot \cdot,x,x,\cdot \cdot \cdot,x\),此 阅读全文

posted @ 2024-03-02 21:31 _XOFqwq 阅读(3) 评论(0) 推荐(0) 编辑

摘要: Problem T1 \(m\) 个人中间必定有 \(m-1\) 个空位,剩下 \(n-m+1\) 个位置可以随意放人,则方案数为 \(A^{m}_{n-m+1}\)。 T2 考虑进行 \(dp\)。 状态:令 \(dp_{i,j}\) 表示字符串 \(S_{i \sim j}\) 要变成回文串需要 阅读全文

posted @ 2024-03-02 21:30 _XOFqwq 阅读(6) 评论(0) 推荐(0) 编辑

摘要: 难度虚高,建议评橙 / 黄 qwq。 首先我们发现这是一道最短路问题,且 \(N \le 300\),于是采取 floyd 算法解决。 具体地,我们分情况分类讨论。令我们当前枚举到的最短路径起点为 \(i\),终点为 \(j\),中转点为 \(k\),输入的矩阵为 \(dis\)。 若 \(dis_ 阅读全文

posted @ 2024-03-02 17:20 _XOFqwq 阅读(7) 评论(0) 推荐(0) 编辑

摘要: 首先,我们可以得出一个结论: 令点 \(i,j\) 之间的最短路径边权和 \(dis_{i,j}\),若存在一个点 \(k\),使得 \(k \neq i\) 且 \(k \neq j\) 且 \(dis_{i,k}+dis_{k,j}=dis_{i,j}\),则连接 \(i,j\) 的边可以被删去 阅读全文

posted @ 2024-03-02 17:19 _XOFqwq 阅读(17) 评论(0) 推荐(0) 编辑

摘要: 我们发现,brute-force 的复杂度的优化瓶颈主要在建图上。 于是我们有一个巧妙的转化: 因为所有满足 \(L \le S,T \le R\) 的所有边 \((S,T)\) 的长度均为 \(C\)。 然后题目要求的是 \(1 \sim N\) 的最短路。 那么在边权相等的情况下,走到的点的编号 阅读全文

posted @ 2024-03-02 17:19 _XOFqwq 阅读(14) 评论(0) 推荐(0) 编辑

摘要: 假定当前在节点 \(u\),它拥有两棵子树 \(v,w\),此时 \(u\) 是 \(\operatorname{lca}(v,w)\)。 我们一定可以构造出一个排列 \(a\),使得所有满足 \(i \in v\) 的节点 \(i\) 和满足 \(j \in w\) 的节点 \(j\),有 \(a 阅读全文

posted @ 2024-03-02 17:18 _XOFqwq 阅读(4) 评论(0) 推荐(0) 编辑

摘要: Problem T1 为了方便处理,我们令男生为 \(1\),女生为 \(-1\)。 求一遍前缀和 \(sum\),若存在两个下标 \(l,r\) 使得 \(sum_l=sum_r\),则说明区间 \([l+1,r]\) 的和为 \(0\),即男女人数相等。在这样的区间中取长度最大的即可。 需要特殊 阅读全文

posted @ 2024-03-02 17:17 _XOFqwq 阅读(5) 评论(0) 推荐(0) 编辑

摘要: Problem T1 预处理出前 \(10^4\) 个格子需要填什么数,然后输出即可。 具体地,我们记录 \(e\) 为当前层数,\(o\) 为上一层的最后一个的位置,\(last\) 为上一个填的格子的位置。 我们知道,一个格子要么在一层的起点,要么在一层的中间,要么在一层的末尾。 枚举 \(1 阅读全文

posted @ 2024-03-02 17:16 _XOFqwq 阅读(5) 评论(0) 推荐(0) 编辑

摘要: Problem T1 循环 \(a \sim b\) 中的每个数 \(x\),判断 \(\log_2 x\) 是否为整数即可。 T2 字符串暴力匹配。 T3 gugugu... T4 gugugu... 阅读全文

posted @ 2024-03-02 17:16 _XOFqwq 阅读(2) 评论(0) 推荐(0) 编辑

摘要: Problem T1 我们考虑一种贪心策略:对于价格前 \(n-1\) 小的咖啡,我们求出一种最优方案使得按照此方案买完咖啡后钱数 \(\ge 20\) 且最接近 \(20\)。 至于如何求出最优方案,进行一遍 01 背包即可。 #include<bits/stdc++.h> using names 阅读全文

posted @ 2024-03-02 17:15 _XOFqwq 阅读(4) 评论(0) 推荐(0) 编辑

摘要: 开个新坑 qwq。 upd:CSP 前一周暂时停更。 upd:暂时不会更了。 P1099 经典套路题。 算法一:枚举。 先 dfs 求出树的直径,再枚举直径上的每条路径,再 dfs 一遍求出最小偏心距即可。 时间复杂度 \(O(n^3)\),足以通过本题(由此可见本题有多水)。 算法二:双指针。 通 阅读全文

posted @ 2024-03-02 17:14 _XOFqwq 阅读(7) 评论(0) 推荐(0) 编辑

摘要: Problem T1 二分板子。 对于 \(c_i\) 降序排序,然后二分 \(h\) 指数,在 check 中贪心地使用综述增加引用次数即可。 T2 通过观察可以发现,在一篇论文的贡献列表中,若某一位置出现了比它前面的名字的字典序更小的情况,则说明从这个位置开始,后面的人的资历一定 \(\ge\) 阅读全文

posted @ 2024-03-02 17:13 _XOFqwq 阅读(5) 评论(0) 推荐(0) 编辑

摘要: Problem T1 略。 T2 最理想的情况当然是奇偶交替,每个数单独成为一组。 考虑不理想的情况: 偶数个数 \(>\) 奇数个数,此时需要可以先奇偶交替,再将最后剩下的偶数单独分为一组,答案为奇数个数 \(\times \ 2 +1\)。 奇数个数 \(>\) 偶数个数,此时再分出两种情况: 阅读全文

posted @ 2024-03-02 17:13 _XOFqwq 阅读(1) 评论(0) 推荐(0) 编辑

摘要: 恶♂趣♂味♂大♂模♂拟♂。 首先是构造语句部分: 开始肯定是尽可能地多用上不及物语句和及物语句; 接着,因为及物语句的单词数量一定比不及物语句多,所以贪心地尽可能多地将不及物语句改为及物语句; 然后,为了增加语句长度,再次贪心地在及物语句中尽可能多地添加名词和逗号即可。 接下来是输出部分: 对于一个 阅读全文

posted @ 2024-03-02 17:12 _XOFqwq 阅读(19) 评论(0) 推荐(0) 编辑

摘要: Problem T1 略。 T2 略。 T3 考虑对于每一头向北的牛,计算它能够挡住 / 被挡住几头向东的牛。 一头向北的牛 \(i\) 能够被向东的牛 \(j\) 挡住的条件是: \(x_i<x_j\) 且 \(y_i<y_j\)(\(x_i,y_i\) 分别表示牛 \(i\) 的 \(x\) 坐 阅读全文

posted @ 2024-03-02 17:10 _XOFqwq 阅读(2) 评论(0) 推荐(0) 编辑

摘要: Problem 省流:三道题写了 tj T1 见 tj。 T2 见 tj。 T3 见 tj。 T4 二分求出左右端点即可。 #include<bits/stdc++.h> using namespace std; int n,q; int p[200031]; int main(){ //freop 阅读全文

posted @ 2024-03-02 17:10 _XOFqwq 阅读(2) 评论(0) 推荐(0) 编辑

摘要: Problem T1 感觉是最难的。 考虑贪心。 首先对牛的按左端点进行排序,然后对于每只鸡去考虑匹配哪头牛。 具体地,开一个小根堆,然后对于每只鸡 \(t_i\),将 \(a_i \le t_i\) 的牛放入堆中,此时堆中存放的是候选的牛。 然后对于堆中的牛,将 \(b_i<t_i\) 的牛弹出。 阅读全文

posted @ 2024-03-02 17:09 _XOFqwq 阅读(2) 评论(0) 推荐(0) 编辑

摘要: 这题的朴素 dp 是显然的。 令 \(dp_i\) 表示跳到第 \(i\) 个石头的最小花费,有转移方程: \[dp_i=\min_{j=1}^{i-1}\{dp_j+(h_i-h_j)^2+C\} \]直接转移是 \(O(n^2)\) 的,考虑优化。 首先对于 \(\min\) 以内的式子化简,得 阅读全文

posted @ 2024-03-02 17:07 _XOFqwq 阅读(10) 评论(0) 推荐(0) 编辑