随笔分类 - ACM竞赛
摘要:题目 D - Snuke Numbers 思路 打表找规律: void bf(int n) { vector<int> ans; double minn = double(n) / get(n); for (int i = n - 1; i >= 1; i --) { double t = doub
阅读全文
摘要:题目 D - Patisserie ABC 思路 枚举三组权重和的正负情况,一共2^3种可能; 对于每种情况,直接计算对应得分,取最大的m个蛋糕的得分求和; 对所有情况的得分取最大即可。 总结 代码 点击查看代码 #include <iostream> #include <algorithm> #i
阅读全文
摘要:题目 D - Good Grid 思路 用一个对角线上颜色相同,间隔3个对角线上颜色相同,一共分为3组; 考虑在c种颜色中,选择3种,分配给这3组,共\(A(n, 3)\)种选法; dfs枚举排列方案,对每种方案计算花费,取最优即可。 总结 dfs枚举排列方案; 代码 点击查看代码 #include
阅读全文
摘要:题目 D - Xor Sum 2 给出n个元素的数组a,求满足条件的子区间个数:数组a子区间元素和与异或和相等。 思路 和与异或和相同,即没有任何进位,也就是区间中对于范围内每个二进制位,最多出现一次; 使用双指针,统计每个二进制位最多出现一次的区间个数即可; 总结 异或:不进位加法; 代码 点击查
阅读全文
摘要:题目 D - Equals 给出\(1\sim n\)的排列p,给出\(m\)种对换\((p_i, p_j)\),在这\(m\)种对换中任选操作,对原排列对换任意多次。求能够实现的\(p_i = i\)的最大个数为多少? 思路 将m中对换中能够相互关联的位置归为一组,这组位置之间可通过对换操作实现任
阅读全文
摘要:题目 D - Five, Five Everywhere 寻找n个素数,使得这n个素数中任意5个数之和都是合数。 思路 如果一个数除5余1,那么5个这样的数之和一定能被5整除; 筛出范围内所有满足上述条件,且为素数的数即可。 总结 如何想到除五余一这一点呢? 首先应思考如何构造合数,想到如果是5个数
阅读全文
摘要:题目 Static Sushi 一个圆桌上摆着n个食物,吃掉每个食物得到一定能量,沿着圆桌任意顺时针逆时针走,每走一米消耗1点能量,求能够得到的最大能量。 思路 一共4种走法: 顺时针走到某位置离开; 逆时针走到某位置离开; 顺时针走,而后走回原点,在逆时针走到某位置,离开; 逆时针走,而后走回原点
阅读全文
摘要:题目 Binomial Coefficients \(n\)个数中选择两个数作为组合数\(C(m,r)\)的\(m\)和\(r\),使得组合数的值最大。 思路 首先选择最大的数作为\(m\); 其次,对于确定的\(m\),要使得组合数最大,使得\(r\)接近\(\left \lceil \frac{
阅读全文
摘要:题目 D - Grid Components 在不超过100×100的方格中染黑白色,使得白色联通块个数为a,黑色连通块个数为b。 思路 固定使用100×100的格子,首先将上半部分全涂白,下半部分全涂黑;此时黑白两色的连通块的个数均为1; 而后在白色区域,在不破坏白色区域白色块联通性的前提下,离散
阅读全文
摘要:题目 F - Fuel Round Trip 总结 关键在于状态的定义。因为每个位置尽可加油一次,因此往返会相互影响,因而必须考考虑状态中定义去时经过此地的油量j与回时经过此地的油量k,这样才能成功转移; 此外,本题状态转移比较奇特,相邻两个位置的状态的转移,在时间上包含去和回两个不同的时刻,较难理
阅读全文
摘要:- [支配树学习笔记 - cjTQX - 博客园 (cnblogs.com)](https://www.cnblogs.com/tqxboomzero/p/14289261.html) - [感性理解支配树_litble的博客-CSDN博客](https://blog.csdn.net/litble
阅读全文
摘要:# 01 倍增lca [P3379 【模板】最近公共祖先(LCA) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)](https://www.luogu.com.cn/problem/P3379) ## 1.1 常用简短版本(利用结点深度) ```cpp #include #inc
阅读全文
摘要:### 题目 [E - Tangency of Cuboids](https://atcoder.jp/contests/abc312/tasks/abc312_e) ### 思路 意识到本题的数据规模可以暴力去做! - $N=100$,$N^3$直接遍历整个空间可做; - 立方体间不相交,也就是可
阅读全文
摘要:### 题目 [D - Count Bracket Sequences](https://atcoder.jp/contests/abc312/tasks/abc312_d) ### 思路 - `dp[i][j]`为考虑前$i$个位置,待匹配的`(`有$j$个的方案数; ### 代码 点击查看代码
阅读全文
摘要:### 题目 [C - Invisible Hand](https://atcoder.jp/contests/abc312/tasks/abc312_c) ### 思路 - 二分X,同时二分得到buyer和seller的人数(很精巧的二分~); - 当然,从复杂度角度,$O(N\log N)$ 也
阅读全文
摘要:关于bitset,详见[参考](https://www.cnblogs.com/yifusuyi/p/10072729.html); ```cpp #include #include using namespace std; using LL = long long; int main() { bi
阅读全文
摘要:```cpp #include #include #include using namespace std; using ULL = unsigned long long; // 字符串哈希(注意 get(l,r)为闭区间,字符串下标从1开始) struct StringHash { vector
阅读全文