合集-ACM-abc
摘要:https://atcoder.jp/contests/abc306/tasks/abc306_e ```cpp #include #include #include using namespace std; typedef long long LL; const int N = 5e5 + 10;
阅读全文
摘要:https://atcoder.jp/contests/abc053/tasks/arc068_b ```cpp // https://atcoder.jp/contests/abc053/tasks/arc068_b // 当某个数字个数n>=3, 可直接拿出3个进行操作, 每次减少两个 ; //
阅读全文
摘要:https://atcoder.jp/contests/abc042/tasks/arc058_b // 分成两段, 计算组合数, 枚举分段点; 注意组合数需要使用递推, 否则超时 #include <iostream> #include <algorithm> using namespace st
阅读全文
摘要:https://atcoder.jp/contests/abc043/tasks/arc059_b ```cpp // https://atcoder.jp/contests/abc043/tasks/arc059_b // 任何unbalance子串, 必定含有 aa 或 aba 这两种之一的子串
阅读全文
摘要:https://atcoder.jp/contests/abc045/tasks/arc061_b ``` // https://atcoder.jp/contests/abc045/tasks/arc061_b // 注意到每个格子染色仅能影响到周围范围的格子, 因而对N个染色点进行枚举 // 为
阅读全文
摘要:https://atcoder.jp/contests/abc044/tasks/arc060_b ``` // https://atcoder.jp/contests/abc044/tasks/arc060_b // 根号分治 // 将数据范围分为两部分处理, 使得拆开成两部分后各部分复杂度均符合
阅读全文
摘要:https://atcoder.jp/contests/abc046/tasks/arc062_b ``` // https://atcoder.jp/contests/abc046/tasks/arc062_b // 策略 : 与对方做出相同的动作, 至少能保证得分>=0 // 如对方的布的次数没
阅读全文
摘要:https://atcoder.jp/contests/abc047/tasks/arc063_b ``` // https://atcoder.jp/contests/abc047/tasks/arc063_b // 最大利润 : 仅在一个点买入最多, 在另一个点全部卖出; 使得两个点间的价值差最
阅读全文
摘要:https://atcoder.jp/contests/abc048/tasks/arc064_b - 有意识地想办法简化问题, 缩小问题规模 - 尝试打表找规律 ``` // https://atcoder.jp/contests/abc048/tasks/arc064_b // 考虑当出现不能操
阅读全文
摘要:https://atcoder.jp/contests/abc049/tasks/arc065_b ``` // https://atcoder.jp/contests/abc049/tasks/arc065_b // 使用两个并查集维护连通关系 // 求并集, 使用每个并查集的祖宗节点组成的pai
阅读全文
摘要:``` #include #include #include using namespace std; typedef long long LL; map mp; const LL mod = 1e9 + 7; LL f(LL n) { if (mp[n]) return mp[n]; if (n
阅读全文
摘要:https://atcoder.jp/contests/abc051/tasks/abc051_d ``` // https://atcoder.jp/contests/abc051/tasks/abc051_d // 一条边不含于任何一条最短路中, 当且仅当w[i][j] > dist[i][j]
阅读全文
摘要:https://atcoder.jp/contests/abc052/tasks/arc067_b ``` // https://atcoder.jp/contests/abc052/tasks/arc067_b // 贪心即可, 从左到右行动, 每步选择代价小的方式 #include #inclu
阅读全文
摘要:https://atcoder.jp/contests/abc054/tasks/abc054_d ``` // https://atcoder.jp/contests/abc054/tasks/abc054_d // 背包 // 这里开始的时候数据规模想错了, 所以用了map, 实际上可以用数组
阅读全文
摘要:https://atcoder.jp/contests/abc055/tasks/arc069_b 使用二进制枚举会更加简洁, 要有从进制角度思考问题的习惯 ``` // https://atcoder.jp/contests/abc055/tasks/arc069_b // 枚举, 尝试前两个动物
阅读全文
摘要:https://atcoder.jp/contests/abc056/tasks/arc070_b #### solution1: 贪心 ``` // https://atcoder.jp/contests/abc056/tasks/arc070_b // 查到多种做法 二分 / dp ... //
阅读全文
摘要:[D - Maximum Average Sets](https://atcoder.jp/contests/abc057/tasks/abc057_d) ``` // https://atcoder.jp/contests/abc057/tasks/abc057_d // 贪心, 尽可能拿大的,
阅读全文
摘要:[D - ###](https://atcoder.jp/contests/abc058/tasks/arc071_b) 原计算公式为: $$ \sum\limits_{1\le i #include using namespace std; typedef long long LL; const
阅读全文
摘要:[D - Alice&Brown](https://atcoder.jp/contests/abc059/tasks/arc072_b) #### 如何打表 要善于通过打表展示视觉信息, 从而找到规律; ``` #include #include using namespace std; typed
阅读全文
摘要:[D - Simple Knapsack](https://atcoder.jp/contests/abc060/tasks/arc073_b) ``` // https://atcoder.jp/contests/abc060/tasks/arc073_b // 背包问题 // 特别在于, 背包体
阅读全文
摘要:[D - Score Attack](https://atcoder.jp/contests/abc061/tasks/abc061_d) ``` // https://atcoder.jp/contests/abc061/tasks/abc061_d // 单源最短(长)路, spfa, 判断负(
阅读全文
摘要:[D - 3N Numbers](https://atcoder.jp/contests/abc062/tasks/arc074_b) [参考](https://blog.csdn.net/awow80285/article/details/101550652) ``` // https://atc
阅读全文
摘要:[D - Widespread](https://atcoder.jp/contests/abc063/tasks/arc075_b) 对二分答案的特点要敏感!!! ``` // https://atcoder.jp/contests/abc063/tasks/arc075_b // 二分答案 #i
阅读全文
摘要:[D - Insertion](https://atcoder.jp/contests/abc064/tasks/abc064_d) > [另一种做法](https://www.bilibili.com/read/cv24447317),注意这两种写法: >1. `max_element` >2.
阅读全文
摘要:[F - Box in Box](https://atcoder.jp/contests/abc309/tasks/abc309_f) ``` // https://atcoder.jp/contests/abc309/tasks/abc309_f // [unique + lower_bound
阅读全文
摘要:[E - Family and Insurance](https://atcoder.jp/contests/abc309/tasks/abc309_e) ``` // https://atcoder.jp/contests/abc309/tasks/abc309_e // // 关键在于意识到,
阅读全文
摘要:[D - Built?](https://atcoder.jp/contests/abc065/tasks/arc076_b) ``` // https://atcoder.jp/contests/abc065/tasks/arc076_b // 贪心+最小生成树 // 关键在于意识到, 连接x或y
阅读全文
摘要:[D - 11](https://atcoder.jp/contests/abc066/tasks/arc077_b) ``` // https://atcoder.jp/contests/abc066/tasks/arc077_b // // 总组合数减去重复部分 // 对于本题求组合数方法: /
阅读全文
摘要:[D - Fennec VS. Snuke](https://atcoder.jp/contests/abc067/tasks/arc078_b) ``` // https://atcoder.jp/contests/abc067/tasks/arc078_b // // 关键点: 双方的最优策略一
阅读全文
摘要:[D - Decrease (Contestant ver.)](https://atcoder.jp/contests/abc068/tasks/arc079_b) 逆向构造(操作)思维 ~ ``` // https://atcoder.jp/contests/abc068/tasks/arc07
阅读全文
摘要:[D - Grid Coloring](https://atcoder.jp/contests/abc069/tasks/arc080_b) ``` // https://atcoder.jp/contests/abc069/tasks/arc080_b // #include #include #
阅读全文
摘要:[D - Transit Tree Path](https://atcoder.jp/contests/abc070/tasks/abc070_d) ``` // https://atcoder.jp/contests/abc070/tasks/abc070_d // #include #inclu
阅读全文
摘要:[D - Coloring Dominoes](https://atcoder.jp/contests/abc071/tasks/arc081_b) ``` // https://atcoder.jp/contests/abc071/tasks/arc081_b // #include #inclu
阅读全文
摘要:[D - Derangement](https://atcoder.jp/contests/abc072/tasks/arc082_b) ``` // https://atcoder.jp/contests/abc072/tasks/arc082_b // // 令0表示p[i]!=i, 1表示p[
阅读全文
摘要:[D - joisino's travel](https://atcoder.jp/contests/abc073/tasks/abc073_d) ``` // https://atcoder.jp/contests/abc073/tasks/abc073_d // Floyed + 枚举排列 #i
阅读全文
摘要:[D - Restoring Road Network](https://atcoder.jp/contests/abc074/tasks/arc083_b) ``` // https://atcoder.jp/contests/abc074/tasks/arc083_b // // 1. 跑一边f
阅读全文
摘要:[D - Axis-Parallel Rectangle](https://atcoder.jp/contests/abc075/tasks/abc075_d) ``` // https://atcoder.jp/contests/abc075/tasks/abc075_d // // 本代码为完全
阅读全文
摘要:[D - AtCoder Express](https://atcoder.jp/contests/abc076/tasks/abc076_d) ``` // https://atcoder.jp/contests/abc076/tasks/abc076_d // // dp[i][j] 表示第i秒
阅读全文
摘要:[D - Small Multiple](https://atcoder.jp/contests/abc077/tasks/arc084_b) ``` // https://atcoder.jp/contests/abc077/tasks/arc084_b // // 参考: // 1. https
阅读全文
摘要:[D - ABS](https://atcoder.jp/contests/abc078/tasks/arc085_b) ``` // https://atcoder.jp/contests/abc078/tasks/arc085_b // // 思路: // 首先注意到两点: // 1. a[n]
阅读全文
摘要:[D - Wall](https://atcoder.jp/contests/abc079/tasks/abc079_d) ``` // https://atcoder.jp/contests/abc079/tasks/abc079_d // #include #include #include #
阅读全文
摘要:[D - Recording](https://atcoder.jp/contests/abc080/tasks/abc080_d) ``` // https://atcoder.jp/contests/abc080/tasks/abc080_d #include #include using na
阅读全文
摘要:[D - Non-decreasing](https://atcoder.jp/contests/abc081/tasks/arc086_b) ``` // https://atcoder.jp/contests/abc081/tasks/arc086_b // // 两种情况非常容易构造 : 全整
阅读全文
摘要:### 题目 [D - FT Robot](https://atcoder.jp/contests/abc082/tasks/arc087_b) ### 思路 - 动态规划的方式记录每次行动后, 机器人在坐标系中所有可能位置 - 通过bitset对状态进行压缩, 即每个位置有机器人true or 没
阅读全文
摘要:### 题目 [D - Wide Flip](https://atcoder.jp/contests/abc083/tasks/arc088_b) ### 思路 参考[live4m的博客](https://blog.csdn.net/weixin_44178736/article/details/1
阅读全文
摘要:### 题目 [D - 2017-like Number](https://atcoder.jp/contests/abc084/tasks/abc084_d) ### 思路 - 筛出数据范围`1e5`范围内的素数 - 检查每个素数是否为 2017-like - 对`1~1e5`内的2017-lik
阅读全文
摘要:### 题目 [D - Katana Thrower](https://atcoder.jp/contests/abc085/tasks/abc085_d) ### 思路 - 关键: 连续使用ai与投掷bi并无冲突, 可先使用ai再投掷bi - 找到ai中的最大值maxa; 首先从大到小使用bi中比
阅读全文
摘要:### 题目 [D - Checker](https://atcoder.jp/contests/abc086/tasks/arc089_b) ### 思路 - 坐标对 2k 取余, 通过二维前缀和计算满足条件的个数; - 也可对 k 取余, [参考](https://www.luogu.com.c
阅读全文
摘要:### 题目 [D - People on a Line](https://atcoder.jp/contests/abc087/tasks/arc090_b) ### 思路 - 使用并查集, 维护节点与父节点信息, 检查兼容性 ### 总结 - 注意维护距离信息的并查集的`find`的写法 ```
阅读全文
摘要:### 题目 [D - Grid Repainting](https://atcoder.jp/contests/abc088/tasks/abc088_d) ### 思路 - bfs找到从起点到终点的最短路, +1(起点), 即为至少留下的白色块的个数 - 则答案 = 总白色块数 - (最短路+1
阅读全文
摘要:### 题目 [D - Practical Skill Test](https://atcoder.jp/contests/abc089/tasks/abc089_d) ### 思路 - 计算出所有结点在跳转过程中的前缀和, 从而O1查询 - 根据数据范围, 实际上不需要二分, 直接开相同大小的数组
阅读全文
摘要:### 题目 [D - Peaceful Teams](https://atcoder.jp/contests/abc310/tasks/abc310_d) **参考:** https://www.cnblogs.com/legendstane/p/freee-programming-contest
阅读全文
摘要:### 题目 [E - NAND repeatedly](https://atcoder.jp/contests/abc310/tasks/abc310_e) ### 思路  ### 思路 [参考](https://www.cnblogs.com/legendstane/p/freee-programming-cont
阅读全文
摘要:### 题目 [D - Remainder Reminder](https://atcoder.jp/contests/abc090/tasks/arc091_b) ### 代码 Code ``` // https://atcoder.jp/contests/abc090/tasks/arc091_
阅读全文
摘要:### 题目 [C - Invisible Hand](https://atcoder.jp/contests/abc312/tasks/abc312_c) ### 思路 - 二分X,同时二分得到buyer和seller的人数(很精巧的二分~); - 当然,从复杂度角度,$O(N\log N)$ 也
阅读全文
摘要:### 题目 [D - Count Bracket Sequences](https://atcoder.jp/contests/abc312/tasks/abc312_d) ### 思路 - `dp[i][j]`为考虑前$i$个位置,待匹配的`(`有$j$个的方案数; ### 代码 点击查看代码
阅读全文
摘要:### 题目 [E - Tangency of Cuboids](https://atcoder.jp/contests/abc312/tasks/abc312_e) ### 思路 意识到本题的数据规模可以暴力去做! - $N=100$,$N^3$直接遍历整个空间可做; - 立方体间不相交,也就是可
阅读全文
摘要:题目 F - Fuel Round Trip 总结 关键在于状态的定义。因为每个位置尽可加油一次,因此往返会相互影响,因而必须考考虑状态中定义去时经过此地的油量j与回时经过此地的油量k,这样才能成功转移; 此外,本题状态转移比较奇特,相邻两个位置的状态的转移,在时间上包含去和回两个不同的时刻,较难理
阅读全文
摘要:题目 D - Grid Components 在不超过100×100的方格中染黑白色,使得白色联通块个数为a,黑色连通块个数为b。 思路 固定使用100×100的格子,首先将上半部分全涂白,下半部分全涂黑;此时黑白两色的连通块的个数均为1; 而后在白色区域,在不破坏白色区域白色块联通性的前提下,离散
阅读全文
摘要:题目 Binomial Coefficients \(n\)个数中选择两个数作为组合数\(C(m,r)\)的\(m\)和\(r\),使得组合数的值最大。 思路 首先选择最大的数作为\(m\); 其次,对于确定的\(m\),要使得组合数最大,使得\(r\)接近\(\left \lceil \frac{
阅读全文
摘要:题目 Static Sushi 一个圆桌上摆着n个食物,吃掉每个食物得到一定能量,沿着圆桌任意顺时针逆时针走,每走一米消耗1点能量,求能够得到的最大能量。 思路 一共4种走法: 顺时针走到某位置离开; 逆时针走到某位置离开; 顺时针走,而后走回原点,在逆时针走到某位置,离开; 逆时针走,而后走回原点
阅读全文
摘要:题目 D - Five, Five Everywhere 寻找n个素数,使得这n个素数中任意5个数之和都是合数。 思路 如果一个数除5余1,那么5个这样的数之和一定能被5整除; 筛出范围内所有满足上述条件,且为素数的数即可。 总结 如何想到除五余一这一点呢? 首先应思考如何构造合数,想到如果是5个数
阅读全文
摘要:题目 D - Equals 给出\(1\sim n\)的排列p,给出\(m\)种对换\((p_i, p_j)\),在这\(m\)种对换中任选操作,对原排列对换任意多次。求能够实现的\(p_i = i\)的最大个数为多少? 思路 将m中对换中能够相互关联的位置归为一组,这组位置之间可通过对换操作实现任
阅读全文
摘要:题目 D - Xor Sum 2 给出n个元素的数组a,求满足条件的子区间个数:数组a子区间元素和与异或和相等。 思路 和与异或和相同,即没有任何进位,也就是区间中对于范围内每个二进制位,最多出现一次; 使用双指针,统计每个二进制位最多出现一次的区间个数即可; 总结 异或:不进位加法; 代码 点击查
阅读全文
摘要:题目 D - Good Grid 思路 用一个对角线上颜色相同,间隔3个对角线上颜色相同,一共分为3组; 考虑在c种颜色中,选择3种,分配给这3组,共\(A(n, 3)\)种选法; dfs枚举排列方案,对每种方案计算花费,取最优即可。 总结 dfs枚举排列方案; 代码 点击查看代码 #include
阅读全文
摘要:题目 D - Patisserie ABC 思路 枚举三组权重和的正负情况,一共2^3种可能; 对于每种情况,直接计算对应得分,取最大的m个蛋糕的得分求和; 对所有情况的得分取最大即可。 总结 代码 点击查看代码 #include <iostream> #include <algorithm> #i
阅读全文
摘要:题目 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
阅读全文

浙公网安备 33010602011771号