板刷atcoder vp
AtCoder Regular Contest 167——B - Product of Divisors
题目很明显,给定 所有因数的积不断除以最多能除几次。 首先,很容易发现,对于每一对因子,都可以对答案得出B的贡献,设A的因子数目为n。 将A进行质因数分解,PBa1,PBa2,PBa3……PBam,那么因数个数就是质因子加一的乘积。 那么因子对数也就是前者一半。答案就是B乘因子对数除以二注意此处除操 ......
AtCoder Beginner Contest(abc) 308
B - Default Price 题目大意 小莫买了n个寿司, 现在给出m个寿司的名称和m+1个价格, 如果小莫买的其中一个寿司不在这m个寿司之中就用价格m0; 请问小莫买的寿司花了多少钱 解题思路 数据不大, 暴力哈希即可; 神秘代码 #include<bits/stdc++.h> #defin ......
Atcoder Beginner Contest 324 G Generate Arrays 题解-Treap
为了更好的阅读体验,请点击这里 题目链接 套上平衡树板子就能做的很快的题,然后因为是指针存树,因此交换只需要把序列大小较小的挨个拿出来插到相应的地方即可。复杂度 \(O(N \log^2 N)\)。 但是一定要记住 不可以直接使用 std::swap 交换包含带有指针的类的实例(如代码中的 Trea ......
AtCoder Regular Contest 167
Preface 补一下上周日的ARC,因为当天白天和队友一起VP了一场所以就没有精力再打一场了 这场经典C计数不会D这种贪心乱搞反而是一眼秒了,后面的EF过的太少就没看 A - Toasts for Breakfast Party 用一个类似于蛇形的放法就好了,比如对于\(n=9,m=5\),放法为 ......
Japan Registry Services (JPRS) Programming Contest 2023 (AtCoder Beginner Contest 324) 赛后总结
Japan Registry Services (JPRS) Programming Contest 2023 (AtCoder Beginner Contest 324) 赛后总结 可悲的是:我没来得及写题解。 T1 Same 秒切。 直接输入排一遍序再遍历即可。 #include <bits/s ......
比赛总结:Japan Registry Services (JPRS) Programming Contest 2023 (AtCoder Beginner Contest 324)
比赛:Japan Registry Services (JPRS) Programming Contest 2023 (AtCoder Beginner Contest 324) A-same 1.常规方法 int main() { int n; cin >> n; vector<int> s(n) ......
【codeforces】cf880div2 vp小结
碎碎念 多测要清空!清空从0开始循环!!!!!!!爆哭 不知道因为初始化和清空罚了多少次了呜呜呜呜呜 这次真的真的记得清空了,但是因为一直习惯下标从1开始所以导致for循环清空的时候a[0]没有清空 A和B简简单单的两个签,但是C的难度就突然升高,补题的时候发现1700的时候真的...犹豫了一下要不 ......
AtCoder Regular Contest 066 F Contest with Drinks Hard
洛谷传送门 AtCoder 传送门 下文令 \(a\) 为原题中的 \(T\)。 考虑若没有饮料,可以设 \(f_i\) 表示,考虑了前 \(i\) 道题,第 \(i\) 道题没做的最大得分。转移就枚举上一道没做的题 \(j\),那么 \([j + 1, i - 1]\) 形成一个连续段。设 \(b ......
Atcoder Regular Contest 167
卡 B 下大分了,怎么回事呢。 A. Toasts for Breakfast Party 发现题意是让方差尽可能小,就是让 \(A\) 里的值尽可能接近。 所以从小到大排个序,把 \(A_{N,\dots,N-M+1}\) 依次放进 \(1,2,\dots,M\),再把 \(A_{N-M,\dot ......
AtCoder Beginner Contest 324
在高铁上加训! A - Same (abc324 A) 题目大意 给定\(n\)个数,问是否都相等。 解题思路 判断是不是全部数属于第一个数即可。或者直接拿set去重。 神奇的代码 #include <bits/stdc++.h> using namespace std; using LL = lo ......
【题解】AtCoder-ARC167
AtCoder-ARC167A Toasts for Breakfast Party 一定不会有空盘,问题转化成 \(2m\) 个数,其中 \(2m-n\) 个是 \(0\),这样一定是最大值和最小值一起,次大值和次小值一起,以此类推。 提交记录:Submission - AtCoder AtCod ......
AtCoder Beginner Contest 180 F Unbranched
洛谷传送门 AtCoder 传送门 首先进行一个容斥,把连通块最大值 \(= K\) 变成 \(\le K\) 的方案数减去 \(\le K - 1\) 的方案数。 考虑 dp,设 \(f_{i, j}\) 表示当前用了 \(i\) 个点,\(j\) 条边。转移即枚举其中一个连通块的大小 \(k\) ......
AtCoder Beginner Contest 324 DF题题解
比赛链接 D - Square Permutation 其实比较简单,但是比赛时候脑子不转了,竟然在尝试枚举全排列,然后算了一下复杂度直接不会做了。 正解应该是枚举完全平方数,底数枚举到 \(sqrt(10^{14})\) 即可,因为 n 最大为 13。 然后统计一下这个完全平方数各个数字出现了多少 ......
AtCoder Beginner Contest 324
D - Square Permutation 须知:最大的平方数的平方一定小于等于10n,平方数最多为10(n/2)(因为再大会越界) 因为要求的数一定是原数的排列组合,所以它们的元素和对应的元素个数一定相同 所以只要判断平方数的字符串是否与原字符串相等即可(这里可以利用排序判断) 点击查看代码 # ......
Atcoder Beginner Contest 324 F Beautiful Path 题解-分数规划
为了更好的阅读体验,请点击这里 分数规划小技巧:尽可能将式子写成存在某种取值,使得不等式成立的形式。 不然可能需要绕几个弯才能想出来。 题目链接 题目大意:给出一个 DAG,每条边有一个 \(b_i, c_i\),保证从编号小的边向编号大的边连边,且 \(1\) 到 \(n\) 必有路径,求 \(1 ......
AtCoder Beginner Contest 321 C-321-like Searcher
可以观察到0-9的所有子集都能恰组成一个满足题目条件的数字,所以共有1022个数{除空集和0} 方法就是二元枚举,找出所有数然后排序。 #include <iostream> #include <cstdio> #include <vector> #include <algorithm> using ......
Atcoder beginner constest319 Minimum Width
因为要求窗口的最小宽度,当宽度为w时满足条件,那么宽度为w+1时也满足条件,有此可见是有单调性的,那么可以用二分搜的方法,且此题目一定有解。因为M最大为2乘以10的5次方,Li最大为10的9次方,所以宽度最大为2乘以10的14次方,单词每次间隔1,所以这里设成10的17次方。之后就是套二分模板解暴力 ......
AtCoder Regular Contest 166
Preface 上周末因为上课而且这天下午还有CF要打,所以就没现场打这场ARC了 这两天事情也特别多导致写题的时间很少,摸了好久总算是补了四个题 A - Replace C or Swap AB 感觉是我做法复杂了,怎么A题码量好大 首先我们找到所有\(Y\)中为\(C\)的位置,显然对应的\(X ......
题解 AtCoder wtf22_day1_b【Non-Overlapping Swaps】
给定一个排列,要求交换最多 $n-1$ 对元素,使得这个排列变成 [1,2,...,n] 的有序排列。
当然没有那么简单,对于交换还是有限制的,对于相邻的两次交换,不妨叫做 $(l_i, r_i)$ 和 $(l_{i+1}, r_{i+1})$,必须满足**这两个交换所对应的区间,没有交集**,即... ......
Atcoder Grand Contest 016 E - Poor Turkeys
先思考这样一个问题:对于一只火鸡 \(i\),我们应该如何判断它最后是否能活下来。如果我们正着判断,我们其实并没有足够的证据表明每一次操作我们应该保留哪只火鸡,也就没法判断最终的答案。但是如果我们倒着考虑,我们发现,如果最后一次操作的两个火鸡都不是 \(i\),那么这次操作选啥对答案没有影响,而如果 ......
AtCoder Regular Contest 166——A - Replace C or Swap AB
题目描述 中文题目描述 每个字符串的长度为N,由A, B和C组成。 通过对X执行以下三种操作任意次数(可能为零),确定是否有可能使X与y重合。 操作(1):选择X中的字符C替换为字符A。 操作(2):在X中选择字符C替换为字符B。 操作(3):选择X中的子字符串AB,替换为BA。更正式地说,选择一个 ......
Atcoder Regular Contest 166
只打了半场。 A. Replace C or Swap AB 首先如果存在某个 \(i\),使得 \(Y_i\) 是 C 且 \(X_i\) 不是,那么显然是不合法的,可以直接判掉。 那么除去上述情况 \(Y\) 中为字符 C 的位置 \(X\) 也只能是 C。它们把字符串分成了若干段,可以把每一段 ......
Atcoder Regular Contest 165
B. Sliding Window Sort 2 被题目名里的滑动窗口误导了,于是卡 B 40min /fn Description 给定长度为 \(n\) 的排列 \(P\) 和一个整数 \(K\)。一次操作定义为选择一个长度为 \(K\) 的区间,对原排列的这段区间升序排序,其余位置不变。 你要 ......
AtCoder Regular Contest 166 AB题题解
A - Replace C or Swap AB 个人感觉挺有意思的一道思维题(好久没做思维题了,竟然卡了一个小时)。 除去C不看,我们发现X序列中的A只能向后移动,B只能向前移动,且可以移动任意次数。 所以假如没有C的话,做法是这样的: 从前往后分别统计X和Y序列中的A的数目,若某一时刻发现X中A ......
AtCoder Beginner Contest 323 (ABC 323) D、E、F 题解
AtCoder Beginner Contest 323 (ABC 323) D、E、F 题解 D 题目大意 给 \(n\) 种数 \(s_i\) ,每一种数有 \(c_i\) 个,每次可以把两个相同的数合并为一个数,问最后会剩下多少数? 分析 对于每一个数 \(s_i\) ,它最多被分解 \(lo ......
AtCoder Beginner Contest 323
E - Playlist 首先需要算出第x+0.5秒后,第一首歌播放的概率 1.要在x+0.5秒后播放第一首,需要在x,x-1,x-2,...,x-t[1]+1,时就要开始播放第一首,并且概率是1/n,概率之和除以n 2.概率dp,dp[i]表示播放i的概率,那么可以转换成,dp[i]+=dp[i- ......
UNIQUE VISION Programming Contest 2023 Autumn(AtCoder Beginner Contest 323)
UNIQUE VISION Programming Contest 2023 Autumn(AtCoder Beginner Contest 323) A. Weak Beats 解题思路: 按题意模拟即可。 代码: #include <bits/stdc++.h> using namespace ......
【题解】AtCoder-ABC323
AtCoder-ABC323A Weak Beats 依题意判断。 提交记录:Submission - AtCoder AtCoder-ABC323B Round-Robin Tournament 依题意排序。 提交记录:Submission - AtCoder AtCoder-ABC323C Wo ......
AtCoder Beginner Contest 323 - A B C D
目录A - Weak BeatsB - Round-Robin TournamentC - World Tour Finals ABC323 A - Weak Beats 遍历判断偶数位的字符是否都是 '1' 即可 B - Round-Robin Tournament 统计每个人的胜场次数,再按照胜 ......
AtCoder Beginner Contest 323
有的人边上课边打abc A - Weak Beats (abc323 A) 题目大意 给定一个\(01\)字符串,问偶数位(从\(1\)开始) 是否全为\(0\)。 解题思路 遍历判断即可。 神奇的代码 #include <bits/stdc++.h> using namespace std; us ......