随笔分类 -  做题记录类

摘要:A. 「NOI2015」寿司晚宴 考虑一个 \(500\) 以内的数,顶多有一个大于 \(19\) 的质因子。那么对于所有数按照这个大质因子分类,同一个大质因子只能分给同一个人。对于剩下 \(8\) 个质因子状压 DP 即可。 Code #include<bits/stdc++.h> #define 阅读全文
posted @ 2025-03-02 16:43 zhangxy__hp 阅读(3) 评论(0) 推荐(0) 编辑
摘要:A. Cashback 设某一个子串的大小为 \(k\)。 \(k<c\),要删掉 \(0\) 个最小值,等价于 \(k\) 个长为 \(1\) 的区间。 \(k=c\),就是这个区间之和减掉这个区间最小值。 \(c<k<2c\),等价于 \(1\) 个长为 \(k\) 的区间和 \(k-c\) 个 阅读全文
posted @ 2025-02-23 14:16 zhangxy__hp 阅读(4) 评论(0) 推荐(0) 编辑
摘要:A. 【模板】线段树分裂 首先想到了 FHQ-Treap,但是合并的时候还需要满足大小顺序,不太好搞。考虑权值线段树。 \(1\) 到 \(4\) 操作都是比较常规的。对于 \(0\) 操作,在 \(p\) 的线段树上将 \([x,y]\) 这个区间拆成 \(O(\log n)\) 个区间,赋给新的 阅读全文
posted @ 2025-02-15 17:33 zhangxy__hp 阅读(3) 评论(0) 推荐(0) 编辑
摘要:A. Minimum spanning tree for each edge 先建出最小生成树,对于树边答案就是最小生成树,对于非树边就从两个端点的路径上删掉权值最大的即可。 证明:在这个环中,首先强制选了这条边,然后按照从小到大的顺序选边,则一定不会选到删掉的那条边。 Code #include< 阅读全文
posted @ 2025-02-08 19:14 zhangxy__hp 阅读(10) 评论(0) 推荐(0) 编辑
摘要:A. Tree Master 考虑根号分治,暴力处理。对于一层,设点数为 \(cnt\)。 若 \(cnt>\sqrt{n}\),这样的层最多有 \(\sqrt{n}\) 层,每一层最多计算 \(q\) 次,时间复杂度为 \(O(q\sqrt{n})\)。 否则 \(cnt\le\sqrt{n}\) 阅读全文
posted @ 2025-02-07 09:19 zhangxy__hp 阅读(17) 评论(0) 推荐(0) 编辑
摘要:A. [COCI2009-2010#7] SVEMIR 显然 boruvka。将所有点分别按照 \(x\),\(y\),\(z\) 排序,更新最小边。时间复杂度 \(O(n\log^2 n)\)。 Code #include<cstdio> #include<iostream> #include<u 阅读全文
posted @ 2025-02-04 08:21 zhangxy__hp 阅读(35) 评论(0) 推荐(1) 编辑
摘要:A. Min-Fund Prison (Medium) 考虑一个边双连通分量一定不可能分为合法的两部分,于是进行缩点。缩完后显然是一个森林。 设 \(dp_{i,j,0/1}\) 表示第一堆有 \(i\) 个点,第二堆有 \(j\) 个点,两堆点有没有用一条边连起来的最小花费。对于每棵树,考虑将它加 阅读全文
posted @ 2025-01-23 11:10 zhangxy__hp 阅读(27) 评论(0) 推荐(2) 编辑
摘要:A. 牛场围栏 首先判断 -1 的情况。 如果可用的长度中有 \(1\),那么所有长度都能拼出来。 如果所有可用长度的 \(gcd\) 不为 \(1\),那一定没有最大值。 证明:设 \(gcd\) 为 \(q\),则 \(q\mid x_1a_1+x_2a_2+\dots+x_na_n,x_1,x 阅读全文
posted @ 2025-01-21 16:12 zhangxy__hp 阅读(16) 评论(0) 推荐(1) 编辑
摘要:A. 「SDOI2014」旅行 给每个宗教开一棵线段树,树剖 \(+\) 线段树单点修改区间查询即可。需要动态开点。 Code #include<bits/stdc++.h> #define ll long long #define il inline #define read(x){\ char 阅读全文
posted @ 2025-01-19 11:17 zhangxy__hp 阅读(13) 评论(0) 推荐(0) 编辑
摘要:A. 「NOIP2009」靶形数独 暴搜。 本着搜索必剪枝的思想,略微做一点优化:优先搜索 \(0\) 少的行。 然后就搜就行。 Code #include<bits/stdc++.h> #define ll long long #define il inline using namespace s 阅读全文
posted @ 2025-01-17 19:48 zhangxy__hp 阅读(5) 评论(0) 推荐(0) 编辑
摘要:A. Arpa's weak amphitheater and Mehrdad's valuable Hoses 用并查集将每个朋友圈找出,然后 DP。 设 \(dp_{i,j}\) 表示前 \(i\) 个朋友圈,重量为 \(j\) 的最大美丽度。转移分为从这个朋友圈中选一个转移、用这个朋友圈的和转 阅读全文
posted @ 2025-01-15 18:00 zhangxy__hp 阅读(11) 评论(0) 推荐(0) 编辑
摘要:A. [NOIP2015 普及组] 推销员 首先考虑一个明显假的贪心,选择前 \(X\) 大的疲劳值计算答案。 它假就假在,可以选择一个(或几个)疲劳值更小,但更远的位置,使总贡献更大。 略经思考后发现,如果要更换,那么一定要满足距离比当前的所有都远,而且更换掉的一定是当前最小的疲劳值。 同时,如果 阅读全文
posted @ 2024-12-30 14:23 zhangxy__hp 阅读(11) 评论(0) 推荐(1) 编辑
摘要:A. [USACO13NOV] No Change G 设 \(dp[S]\) 表示取的硬币状态为 \(S\) 时最多买多少东西。给 \(n\) 个物品做前缀和,转移二分即可。时间复杂度 \(O(2^kk\log n)\)。 Code #include<bits/stdc++.h> #define 阅读全文
posted @ 2024-12-21 17:18 zhangxy__hp 阅读(12) 评论(0) 推荐(0) 编辑
摘要:A. 「MXOI Round 1」城市 首先推个小式子,把让求的答案中和 \(n+1\) 有关的分出来: \[\begin{align*} &\sum_{i=1}^{n+1}\sum_{j=1}^{n+1}cost(i,j)\\ =&\sum_{i=1}^{n+1}\sum_{j=1}^{n}cos 阅读全文
posted @ 2024-12-15 13:56 zhangxy__hp 阅读(7) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
深色
回顶
展开