136e abc max gcd
ABC332G Not Too Many Balls 题解
第 \(i\) 种球有 \(a_i\) 个,共 \(n\) 种。 第 \(i\) 种箱子最多共装 \(b_i\) 个球。共 \(m\) 种。 第 \(i\) 种球在第 \(j\) 种箱子里至多放 \(ij\) 个。 问所有箱子放的球数最多是多少。 \(1\leq n\leq 500,1\leq m\ ......
ABC278 复盘
ABC278 复盘 At 链接 LG 链接 [ABC278A] Shift 思路解析:用队列模拟即可。 #include<bits/stdc++.h> using namespace std; int n, k, a[110]; int main() { cin >> n >> k; queue<i ......
CF 1904 D. Set To Max
Easy Version Hard Version Hard Version的做法可以从Easy Version 用数据结构优化得到。 首先我们想一下,什么情况需要进行操作?显然是\(a_i!=b_i\)的时候,并且当\(a_i>b_i\)的时候将会无解。 那么当\(a_i<b_i\)的时候,应该怎 ......
ABC279 复盘
ABC279 复盘 At 链接 LG 链接 [ABC279A] wwwvvvvvv 思路解析:纯模拟,遍历到哪个字母就加几分 #include<bits/stdc++.h> using namespace std; string str; int main() { cin >> str; long ......
一招MAX降低10倍,现在它是我的了
性能优化是一场永无止境的旅程。到家门店系统,作为到家核心基础服务之一,门店C端接口有着调用量高,性能要求高的特点。C端服务经过演进,核心接口先查询本地缓存,如果本地缓存没有命中,再查询Redis。本地缓存命中率99%,服务性能比较平稳。 ......
CF1900D Small GCD
Link 这是一个需要欧拉反演的题目 首先,可以知道只和数字之间的大小有关,数列的顺序无关,那么就可以首先排一个序方便解决该问题。 根据欧拉函数的性质,知道\(n=\sum_{d|n}\phi{(n)}\) 那么我们每次先确定中间的数\(a_j\),然后根据公式,得他它得贡献是\(\sum_{i=1 ......
AT_abc 复盘合集
AT_abc301 复盘 A 一眼水,只需要遍历一遍数组,记录哪一个胜利场数先打到 \((n + 1) / 2\) 就好了。 AC code: // LUOGU_RID: 139221441 #include <bits/stdc++.h> using namespace std; int n, c ......
abc.abstractmethod + property
abc.abstractmethod + property https://stackoverflow.com/questions/14671095/abc-abstractmethod-property import abc class FooBase(metaclass=abc.ABCMeta) ......
ABC332G
题面 有 \(n\) 种颜色的球,第 \(i\) 种颜色的球有 \(a_i\) 个,有 \(m\) 个盒子,第 \(i\) 个盒子能装 \(b_i\) 个球,第 \(i\) 个颜色的球在第 \(j\) 个盒子中最多装 \(ij\) 个,求最多能装多少个球。 \(n\le 500,m\le 5\tim ......
AT_abc301 复盘
AT_abc301 复盘 A 一眼水,只需要遍历一遍数组,记录哪一个胜利场数先打到 \((n + 1) / 2\) 就好了。 AC code: // LUOGU_RID: 139221441 #include <bits/stdc++.h> using namespace std; int n, c ......
abc 330E mex
题意: 对单个固定序列多次操作,输出每次操作后的mex函数值。 E - Mex and Update (atcoder.jp) 不能用博弈论求sg函数那种直接枚举(TLE),因为最差可能达到O(n2),就算每次基于上一次的mex来剪枝也会被卡到这个复杂度,因为每次都只能线性枚举,所以这个方法不合适。 ......
[ABC304Ex] Constrained Topological Sort 题解
题意 给定一张有向图 \(G\),有 \(n\) 个点和 \(m\) 条边,问是否存在一种拓扑序的排列 \(P\) 使得 \(l_{i} \le p_{i} \le r_{i}\)。 思路 首先对于一条边 \(u \to v\),如果限制满足 \(r_{v}\le r_{u}\) 或者 \(l_{v ......
【题解】AtCoder abc322_f Random Update Query
传送门:https://atcoder.jp/contests/abc332/tasks/abc332_f 容易发现,对于一个位置 $i$,$A_i$ 的最终值是由对 $i$ 的最后一次赋值操作决定的;因此,将所有操作按时间顺序倒过来考虑,则由第 $j$ 次操作决定 $A_i$ 最终值的概率为"在第 ......
【题解】AtCoder abc332_g Not Too Many Balls
传送门:https://atcoder.jp/contests/abc332/tasks/abc332_g 看完题,第一眼反应为最大流。 建模方式为:以颜色为左部点,盒子为右部点,源点 $S$ 向颜色 $i$ 连一条容量为 $A_i$ 的边,盒子 $j$ 向汇点 $T$ 连一条容量为 $B_j$ 的 ......
AtCoder_abc332
AtCoder_abc332 比赛链接 A - Online Shopping A题链接 题目大意 这里有\(N\)件商品,第\(i\)件商品价格为\(P_i\),你要购买\(Q_i\)件,除了购买的费用外,他还要支付运费。 如果购买的总价大于\(S\),运费为0元,否则他需要支付\(K\)元的运费 ......
ABC332
D 我们可以把矩阵 \(\text{A}\) 看成 \({p,q}\)。 \(p\) 指现在一行最开始在哪里,\(q\) 指现在这一列最开始在哪里。 于是我们枚举 \(p\) 和 \(q\) 所有可能的情况,如果修改后的 \(\text{A}\) 和 \(\text{B}\) 一样,那么就可以直接统 ......
Atcoder abc301 复盘(更新中)
跳转比赛链接 A - Overall Winner 简述: 高桥和青木下了 \(N\) 盘棋。给你一个长度为 \(N\) 的字符串 \(S\),表示这两盘棋的结果。如果 \(S\) 的 \(i\) 个字符是 t,那么高桥赢得了 \(i\) 局;如果 \(S\) 的 \(i\) 个字符是 A,那么青木 ......
ABC312 复盘
ABC312 复盘 At 链接 LG 链接 A Chord 思路解析:水题,一个 if 即可 #include<bits/stdc++.h> using namespace std; string s; int main() { cin >> s; if(s == "ACE" || s == "BD ......
ABC301 复盘
ABC301 复盘 At 链接 LG 链接 [ABC301A] Overall Winner 思路解析:从头开始遍历字符串,遇到一个字符就给对应的一方加分,输出第一个胜场大于 \(\lceil n / 2\rceil\) 的一方。 #include<bits/stdc++.h> using name ......
无序对的$gcd$
\(N\)为上确界,\(n\)为\(a\)数组元素个数,\(D\)为约数个数。 方法一 \(1.\)求出\(d\),\(d[i]\)表示\(i\)的所有约数(有序)。 时间复杂度:\(O(NlogN)\) vector<int> d[N + 1]; for (int i = 1; i <= N; i ......
[ABC241Ex] Card Deck Score 题解
题目链接 点击打开链接 题目解法 个人认为推式子很妙的生成函数题 暴力套上生成函数,\(ans=[x^m]\prod\limits_{i=1}^{n}(\sum\limits_{j=1}^{b_i}(a_ix)^j)\) \(\sum\limits_{j=1}^{b_i}(a_ix)^j=\frac ......
AT_abc312复盘
AT_abc312 复盘 A 一眼过去直接 \(if\) 秒了 AC code: #include <bits/stdc++.h> using namespace std; string s; int main(){ cin >> s; if (s == "ACE" || s == "BDF" || ......
[ABC254Ex] Multiply or Divide by 2
[ABC254Ex] Multiply or Divide by 2 题意: 给定大小为 $ n $ 的集合 $ A $ 和 $ B $,你可以对集合 $ A $ 中的元素 $ a_i $ 进行两种操作,分别为 $ a_i \leftarrow \lfloor \dfrac{a_i}{2} \rfl ......
Atcoder-ABC317G-Rearranging
ABC317G - Rearranging 题意 给出一个 \(n\) 行 \(m\) 列的矩阵,可以将每一行的 \(m\) 个数重新排列,问能不能得到 \(m\) 列都是 \(n\) 的排列的矩阵,能得到则输出任意一个方案。 给出的矩阵满足对于 \(i \in [1,n]\) ,都恰好出现了 \( ......
ABC256H
不懂其他题解在干什么,明明一个线段树就可以做的题偏要各种数据结构一起上,有难写复杂度也不优。介绍一种优质算法。 区间推平区间求和是简单的。现在只需要解决区间向下取整的除法。 对于这种不好直接在线段树上搞得操作,性质又很妙妙的,考虑势能分析。 若区间最大值和最小值除以 \(x\) 的值一样就一起打推平 ......
ABC325G offence 题解
给出一个长为 \(n\) 的字符串和非负整数 \(k\)。你可以进行以下操作若干次,使得最终字符串长度最小。 选择一个字串 of。然后删掉 of 以及这之后的 \(i\) 个字符。\(i\) 由你决定,但要满足 \(0\leq i\leq k\)。 输出这个最小长度。\(1\leq n,k\leq ......
[ABC254E] Small d and k 题解
题目传送门 一道暴力题。 度数和 \(k\) 那么小?直接暴力 \(n\) 遍 bfs,注意 bfs 的队列只能 push 距离不超过 \(3\) 的点。但有个问题,每次 bfs 都需要清空一次距离数组,这样子的时间复杂度是 \(O(n^2)\) 的。但也不难想到,距离数组中被赋值的地方不会很多,记 ......
ABC331G 题解
盒子里有 \(n\) 张 \(m\) 种卡片,第 \(i\) 种卡片有 \(c_i\) 张。\(\sum c_i=n\)。 每次均匀随机选一张,再放回去。求拿出过的卡片包含全部种类所需要的取出次数的期望。 对 \(998244353\) 取模。 \(1\leq n,m\leq 2e5,c_i\gt0 ......
ABC331G题解
ABC331G 日常被bot吊打罢了。 首先注意到一件事是你 需要求一堆max的期望 对吧。所以其实上来就应该试试上 min-max容斥 的。但是鉴于我没有脑子,所以其实没想到也可以理解。 先来复习一下式子: \[Emax(S) = \sum_{T \subset S} Emin(T)(-1)^{\ ......
ABC 331 F - Palindrome Query(字符串哈希,树状数组)
字符串哈希 [OI-Wiki](字符串哈希 - OI Wiki (oi-wiki.org)) 分为两种哈希方式:以左为高位 和 以右为高位 如果只是快速查询每个字串的哈希值,用以左为高位比较简单,即 \[Hash[l...r]=Hash[1...r]-Hash[1...(l-1)]\times ba ......