三十年河东,三十年河西|

自动机

园龄:1年10个月粉丝:2关注:4

文章分类 -  比赛

Codeforces Round 901 (Div. 2)
摘要:Codeforces Round 901 (Div. 2)C 题意: 给你n个青苹果要分给m个人,不够分的时候可以平均切一刀,问最少且多少刀可以让每个人得到的苹果一样多 思路: 贪心的想肯定是先把一整个苹果分给大家,这样就不用切了,所以 n = n % m, 多出来的苹果再切完分 最少要切成lcm(n, m)份才能均分,由于每次都只能对半切,所以lcm(n
6
0
0
Codeforces Round 903 (Div. 3)
摘要:Codeforces Round 903 (Div. 3)C 题意: 给你一个 n * n 的小写字母矩阵,如果矩阵逆时针旋转90°后与原矩阵相同那么成为完美矩阵 每次操作你可以把一个字符修改为它在字母表中的下一个(z保持不变),问最少操作多少次可以 变成完美矩阵 思路: 仔细观察发现旋转一次,每个点都有四个对应点,只要这四个点一样就行 inline vo
4
0
0
Codeforces Round 900 (Div. 3)
摘要:Codeforces Round 900 (Div. 3)E 题意: 给你一个数组a, 定义f(l, r) = a[l] & a[l + 1]...&a[r],现在给你q次询问,每次给你一个l,k,求一个最大的r使得f(l, r) >= k 思路: 先拆位计算,就把原数组看成一个二进制的二维数组n行30列,这样的话可以发现对于一个区间[l, r]来说,只有
4
0
0
Codeforces Round 855 (Div. 3)
摘要:Codeforces Round 855 (Div. 3)D 题意: 有一个字符串s, 每次可以删除连续的两个字符,问可以得到多少种不同的字符串 思路: 如果每个字符都不一样,那么答案就是n - 1, 如果s[i - 1] = s[i + 1]说明会重复计算一次所以答案减一 inline void solve() { int n; cin >> n; st
4
0
0
Codeforces Round 896 (Div. 2)
摘要:Codeforces Round 896 (Div. 2)C 题意: 构造一个 n * m 的矩阵,要求每一行都是[0, m - 1]的排列,vi 是每一列的MEX 矩阵价值为MEX(v1, v2, v3 ....), 输出最大价值的矩阵 思路: 要想价值最大,那最理想的情况就是每一列的 MEX =
4
0
0
codeforces round 895 (div. 3)
摘要:codeforces round 895 (div. 3)E 题意: 给你一个整数数组a, 以及一个二进制字符串s, 现在有三种操作: 对于给定的区间[l, r],你需要反转s[l, r]; 输出所有s[i] = 1的a[i]异或值 输出所有s[i] = 0的a[i]异或值 思路 1: 暴力做法是O(q * n)超时,想到使用差分来简化操作1,但最坏的情况
3
0
0
Educational Codeforces Round 154 (Rated for Div. 2)
摘要:Educational Codeforces Round 154 (Rated for Div. 2)C 题意: 一开始有个空数组,以及一串操作s: s[i] = +:向空数组末尾中加入一个数 s[i] = -:在数组末尾减去一个数 s[i] = 1:当前数组是递增数组 s[i] = 0:当前数组不是递增数组 问s是否是合法的操作 思路: 非法操作说明当前的 0 和 1 冲突了,当前查询和上一次查询
7
0
0
Codeforces Round 894 (Div. 3)
摘要:Codeforces Round 894 (Div. 3)这次div3,没开出来D太令人伤心了 D 题意: 假设你有 x 个冰淇淋球, 每两个冰淇淋球可以做一个双球冰淇淋,注意{1, 2}和{2, 1}是相同的,问你想做 n 种不同的双球冰淇淋最少需要多少个冰淇淋球 思路: 要想冰淇淋球最少肯定优先用不同的来组合,所以可以先处理出来小于等于 n 的最大C(
4
0
0
Educational Codeforces Round 153
摘要:Educational Codeforces Round 153C 题意: 有一个 n 的全排列,A 和 B 在玩游戏,每人一回合,A先开始。第一回合的时候,A 可以选择一个位置放上一个筹码,接下来的回合里面每个人都要移动这个筹码,移动需要满足:j < i 并且 pj < pi (i 是当前筹码位置,j是移动位置),谁没得选谁就赢 问如果 A
5
0
0
Codeforces Round 893 (Div. 2)
摘要:Codeforces Round 893 (Div. 2)B 题意: 有 n 个椅子,每个椅子编号为 1 - n, 其中有 m 个椅子上坐着一个卖饼的人,你需要从 1 走到 n,当你满足下面三个条件之一时你就要吃一块饼: 你在一号点时要吃一块饼 你距离上一次吃饼已经走过了 d 个椅子,那么你需要吃一块 当前椅子有一个卖饼人你需要吃一块 你现在可以移除一个卖
5
0
0
Codeforces Round 892 (Div. 2)
摘要:Codeforces Round 892 (Div. 2)C: 题意: 找出一个n的全排列使得(i=1i=npii) - (maxj=1j=npjj) 最大 思路: 因为想让大的数字不被浪费掉,所以就把它和次小的数反转一下 ==> 选一段后缀反转暴力枚举一下 inlin
4
0
0
Codeforces Round 891 (Div. 3)
摘要:Codeforces Round 891 (Div. 3)E 题意: 给你一个数组a = [x1 , x2 , x3 ... xn ], 对于每一个数xi, 我们带入数组中都可以得到n个区间([min(xi, xj), max(xi, xj)]) 然后定义函数f(x)
5
0
0
Codeforces Round 890 (Div. 2)
摘要:Codeforces Round 890 (Div. 2)C 题意: 给你一个a数组每次操作可以选择一对aiai+1, 其中ai ai+1, 最多可以进行k次操作,问最后数组里最大的一个数是多少 思路: 当k是无限的时候,对于一对符合条件的数来说最大值就是\(a_{i + 1}
3
0
0
Codeforces Round 847 (Div. 3)
摘要:Codeforces Round 847 (Div. 3)vp补题 赛时脑子不好使了,两题直接下班 C 题意: 已知一个n的排列,我们在黑板上每次都按顺序跳过一个数,将这个排列写下来。比如[1, 2, 3, 4]写下来就是 [2, 3, 4] [1, 3, 4] [1, 2, 4] [1, 2, 4],现在给你黑板上写的n个序列, 求最开始的排列(行和行之
8
0
0
Codeforces Round 889 (Div. 2)
摘要:Codeforces Round 889 (Div. 2)B 题意: 给你一个正整数n,要你求一个最长的区间[l, r]使得区间中的每个数都是n的约数(n <= 1018),输出区间长度 思路: 暴力:直接两重循环枚举区间左右端点,时间复杂度O(n2)显然是无法接受的。于是换个角度先预处理出来所有的约数再双指针求连续上升的最长一段,
8
0
0
Atcoder Beginner Contest 312
摘要:Atcoder Beginner Contest 312D 题意: 给你一串由( ) ?三种字符构成的字符串,? 可以变化成( 或者 ) 问你有多少种方案把序列变成一个合法序列? 思路: 一个合法的括号序列,在每个位置上它的左括号一定要大于等于右括号的数量并且最后两个括号的数量应该相等,所以定义f[i][j]为枚举到第i个位置时左括号减右括号的差值 当s
6
0
0
Educational Codeforces Round 152 (Rated for Div. 2)
摘要:Educational Codeforces Round 152 (Rated for Div. 2)C: 题意: 给你一个长度为n的01字符串s,以及q个询问每次询问给出一个区间[l, r],你需要将区间内的字符排序,问q次询问之后可以得到多少个不同的01字符串? 思路: 直接暴力模拟时间复杂度为O(q(r - l)log(r - l))会超时,通过暴力做法可以发现时间主要卡在了排序上,那要怎么样
2
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起