多校
Top_xiao
这个作者很懒,什么都没留下…
展开
-
2020牛客多校第二场(G题)Greater and Greater
题目描述:给定大小为n的序列A和大小为m的序列B,计算A中所有大小为m的子区间S,满足Si>=Bi1<=i<=m S_{i} >= B_{i} {1 <= i <= m }Si>=Bi1<=i<=mf 是 a 中哪些位置的数大于等于当前数。如果大于 置为1,ans 就是哪些位置满足条件, ans[i] 代表区间 [i, i + m], 是不是满足条件。用 bitset 搞一下,直接暴力肯定是不行的,然后我们考虑到每一个 b[i], 它原创 2020-07-17 12:40:35 · 277 阅读 · 1 评论 -
2020牛客暑期多校训练营(第二场)H. Happy Triangle
三个操作1 多重集合中添加一个数2 多重集合中删除一个数给你一个数x, 问能不能从集合中找到两个数 a b, 使得 a b x 构成三角形。思路:对于多重集合中, 我们假设他有序,那么我们只要找到连续的 a b, 使得 a + b > x, b - a < x, 其中 a <= b, 如果符合这样就好了,使得 多重集合有序, 我们用 map 实现。我们只需要在map中找到 x / 2 + 1 的位置, 说明之后的位置 两数相加都会 大于 x,再找之后位置两数之差原创 2020-07-17 08:34:45 · 183 阅读 · 0 评论 -
2020牛客暑期多校训练营(第二场) J Just Shuffle
对于一个排列A,给定一个置换规则P,在使用置换P K 次置换得到 A,即,Pk=AP^{k} = APk=AAxk=AA^{xk} = AAxk=AP=AxP = A^{x}P=Ax所以 x 就是 k 关于m的逆元,m 就是每个环的大小。/*求 p, p^k = a, k 为质数。 a ^ xk = ap = a ^ x其中 xk = 1 mod m (m 是每个环的周期数)*/#include<bits/stdc++.h>using namespace std原创 2020-07-15 12:04:03 · 138 阅读 · 0 评论 -
2020牛客暑期多校训练营(第一场)B Infinite Tree
构造出来之后, 就是一棵树,树的根节点就是1.这道题要求 i!, i 的大小最大是 1e5, 肯定不能求啊,所以就要拆分,求出来 i! 中每个 i 对阶乘的贡献。预处理出来 i 的 mindiv。假设我们选择的 u 就是 根节点,那么我们要求的值是多少呢。i < j, i 阶乘中的某个数 x, x / dv[x] 代表 x 向 根节点走一步,因为 j 大于 i, 所以 j 中肯定也包含数 x, 只要 x 走一步,j 也会走一步,所以产生的价值就是 sum[n] - sum[i.原创 2020-07-14 11:19:35 · 376 阅读 · 0 评论