chenfy27的刷题记录

导航

上一页 1 2 3 4 5 6 7 8 ··· 17 下一页

2024年10月20日 #

abc376E Max x Sum

摘要: 有序列A[N]和B[N],选出一组大小为K的下标,让A[i]的最大值乘以(B[i]之和)的结果最小,求最小值。 1<=T<=2E5, 1<=K<=N<=2E5, 1<=A[i],B[i]<=1E6 分析:因为A[i]跟B[i]要同步选,因此对下标排序,然后枚举每个A[i]作为最大值,从B[i]中选出 阅读全文

posted @ 2024-10-20 14:05 chenfy27 阅读(11) 评论(0) 推荐(0)

abc376D Cycle

摘要: 有N个顶点M条边的简单有向图,求包含1号点的最小环的顶点数,如果不存在,输出-1。 2<=N<=2E5, 1<=M<=2E5 分析:bfs求最小环。 #include <bits/stdc++.h> using i64 = long long; void solve() { int N, M; st 阅读全文

posted @ 2024-10-20 13:59 chenfy27 阅读(20) 评论(0) 推荐(0)

abc376C Prepare Another Box

摘要: 有N个玩具,大小分别为A[i];另外有N-1个盒子,大小分别为B[i]。现要再买一个盒子,把所有玩具装到盒子里,要求每个玩具都装一个盒子,并且玩具大小不超过盒子大小。问买的盒子至少为多大?如果无法满足,输出-1。 2<=N<=2E5, 1<=A[i],B[i]<=1E9 分析:将玩具按从大到小排序再 阅读全文

posted @ 2024-10-20 13:56 chenfy27 阅读(67) 评论(0) 推荐(0)

abc376B Hands on Ring (Easy)

摘要: 由1~N的块构成的环,最初左手在1号、右手在2号,接下来有Q组操作{H, T},H可以是L或者R,分别表示左手和右手,T是目标位置,移动时要求左右手不能在同一个块上。 3<=N<=100, 1<=Q<=100 分析:模拟,关键在于如何判断是顺时针移动还是逆时针移动。 #include <bits/s 阅读全文

posted @ 2024-10-20 13:48 chenfy27 阅读(93) 评论(0) 推荐(0)

2024年10月18日 #

abc284D Happy New Year 2023

摘要: 给定整数N,已知N可以写成ppq的形式,其中p和q为不同质数,求p和q。 1<=N<=9E18 分析:p与q的最小值不超过3E6,可以枚举。 #include <bits/stdc++.h> using i64 = long long; std::vector<int> minp, prime; v 阅读全文

posted @ 2024-10-18 22:27 chenfy27 阅读(18) 评论(0) 推荐(0)

模板-质数筛

摘要: 埃氏筛法,时间复杂度O(nloglogn)。 std::vector<int> minp, prime; void sieve(int n) { minp.assign(n + 1, 0); prime.clear(); for (int i = 2; i <= n; i++) { if (minp 阅读全文

posted @ 2024-10-18 22:24 chenfy27 阅读(38) 评论(0) 推荐(0)

2024年10月17日 #

模板-整型哈希hval

摘要: 可以考虑将单个int类型映射成3个uint64,再执行加减操作,从而实现将多个int的集合最终映射成3个uint64,通过比较这3个uint64是否相等来快速判断集合是否相同。 由于加法满足交换律,与顺序无法,因此上述做法天然支持多重集合。对于单重集合,可以考虑再加个set维护当前插入了哪些元素,已 阅读全文

posted @ 2024-10-17 12:37 chenfy27 阅读(11) 评论(0) 推荐(0)

模板-带前缀和的平衡树SumTreap

摘要: 在Treap的基础上增加了前缀和接口,使用时TYPE一般指定为i64类型,新增接口如下: 最小的k个元素之和:ksum(相同元素有几个就算几个) 最大的k个元素之和:kSum(相同元素有几个就算几个) template <typename TYPE> struct SumTreap { struct 阅读全文

posted @ 2024-10-17 11:34 chenfy27 阅读(16) 评论(0) 推荐(0)

模板-平衡树Treap

摘要: 基于treap实现的平衡树,支持以下操作和特点: 定义时不需要指定大小上限,会自动分配空间。 已删除的节点空间会回收,并重复利用。 默认为可重集合,如果希望相同元素只存1个,可以在定义时将multi参数设为0,或者在定义后通过setmulti接口设置。 支持insert/erase操作,同时可以通过 阅读全文

posted @ 2024-10-17 11:29 chenfy27 阅读(24) 评论(0) 推荐(0)

2024年10月16日 #

模板-质因子分解

摘要: 版本1:求n的所有质因子,时间复杂度O(sqrt(n))。 // 例如:12=2*2*3,那么 // factor(12, 1) => {2,3} // factor(12, 0) => {2,2,3} std::vector<int> factor(int n, int removeDup) { 阅读全文

posted @ 2024-10-16 12:48 chenfy27 阅读(37) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 ··· 17 下一页