摘要: 原题链接 题解 多想几种暴力 1.遍历所有数对: \(O(n^2)\) 2.求有多少数对其乘积为平方数 \(\to\) 求有多少平方数能被数对乘积: \(O(n^2)\) 3.如果两个数的乘积为平方数,代表他们的质因数,要么都是奇数,要么都是偶数 : \(O(?)\) 4.如果 \(a \times 阅读全文
posted @ 2024-08-11 22:53 纯粹的 阅读(31) 评论(0) 推荐(0)
摘要: 原题链接 题解 比较套路性的题 由于 \(k\geq 10\) ,所以我们可以建立分层图,第 \(i\) 层的点代表使用 \(i-1\) 次免费航线后到达该点的最小花费 阅读全文
posted @ 2024-08-11 22:02 纯粹的 阅读(13) 评论(0) 推荐(0)
摘要: 原题链接 分析 很逆天的一道题 设 \(dp[i][j]\) 为到达第 \(i\) 个点的时刻 \(t\) 且满足 \(t\mod k=j\) 的最小 \(t\) 则有答案为 \(dp[n][0]\) 更新也很简单,设当前点为 \(u\),当前时间为 \(t\) 需要遍历的下一个点 \(v\),则有 阅读全文
posted @ 2024-08-11 20:28 纯粹的 阅读(266) 评论(0) 推荐(0)
摘要: 原题链接 题解 暴力想法: 每次枚举每次查询 \(O(q\cdot n)\) 进阶想法:对查询按 \(r\) 排序,用树状数组维护 \([1,r]\) 内,该范围内每个数最后一次出现的位置 code #include<bits/stdc++.h> using namespace std; /* #d 阅读全文
posted @ 2024-08-11 17:09 纯粹的 阅读(25) 评论(0) 推荐(0)
摘要: 原题链接 题解 1.题目要求我们最小化吃完食物时间的最大值,这给了我们一种二分的感觉。 2.假如给定最大值为 \(K\),那么所有 \(y\) 对应的 \(x\) 都满足 \(x\leq \lfloor \frac{K}{y} \rfloor\) 所以,我们要安排 \(x\),使得每个 \(x\) 阅读全文
posted @ 2024-08-11 16:27 纯粹的 阅读(18) 评论(0) 推荐(0)
摘要: 原题链接 题解 异或就是不进位的加法,所以区间内,每一位最多只有一个一 暴力方法: 遍历每一位区间,查看异或和加和 \(O(n^3)\) 前缀和优化: 找每个右端点合法的左端点 \(O(n^2)\) 利用性质优化: 由于最多只有一个1,所以这样的左端点不会随着右端点的递增而递增 \(O(n)\) c 阅读全文
posted @ 2024-08-11 12:25 纯粹的 阅读(20) 评论(0) 推荐(0)
摘要: 原题链接 题解 \(O(n^3)\) 的暴力方法: 遍历所有区间,然后找出每个区间内的最小值 \(O(n^2)\) 的暴力方法: 考虑每个点的贡献,往左扩展直至出现比其小,往右扩展直至出现比其小的 观察 \(O(n^2)\) 的暴力方法,我们发现往左扩展和往右扩展相互独立 所以我们只观察往左扩展 ” 阅读全文
posted @ 2024-08-11 12:04 纯粹的 阅读(27) 评论(0) 推荐(0)