首页 > 其他分享 >Codeforces Round 942 (Div. 2) (A - E)

Codeforces Round 942 (Div. 2) (A - E)

时间:2024-05-01 21:55:23浏览次数:14  
标签:lfloor gcd sum 942 mid rfloor Codeforces Div cur

A. Contest Proposal

如果 \(a_i > b_i\),则答案加一,令 \(\forall i \in [i + 1, n], \ a_i \leftarrow a_{i - 1}\)。

submission

B. Coin Games

题意:\(n\) 枚硬币围成一圈,给出初始硬币状态,每取出一枚正面朝上的硬币并翻转相邻的两枚,没有正面则对方获胜,问先手胜负。

令当前正面硬币数为 \(cur\)。

  • \(\text{UUU} \rightarrow cur - 3\)
  • \(\text{UUD}\rightarrow cur - 1\)
  • \(\text{DUD}\rightarrow cur + 1\)

每一次操作都会改变 \(cur\) 的奇偶性,先手获胜当且仅当在第偶数次操作时 \(cur = 0\),所以当初始 \(cur\) 为奇数时先手必胜,否则后手必胜。

submission

C. Permutation Counting

题意:现有 \(a_i\) 个数字 \(i\),你可以新添 \(k\) 个数字,问这些数字组成的序列中最多几个排列。

先考虑 \(k = 0\)。

把 \(a\) 排序使得 \(a_1 \ge a_2 \ge \dots\ge a_n\),并让 \(a_i\) 对应的数为 \(x_i\)。

以 \(x_1, x_2\cdots x_n\) 的顺序往下填能使任意长度为 \(n\) 的字串是排列,一定最优。

  • 填满 \(x_n\) 个如上循环节。
  • 继续填 \(x_1,x_2 \dots,x_{n - 1}\),再往后不可能再出现排列(\(x_n\) 没了)。

此时的排列数为 \(na_n - 1\)。

如果 \(a_{n - 1} = a_n\) 呢,那么 \(x_{n -2}\) 后就不能填了,以此类推。

最后答案为 \(na_n - \sum[a_i = a_n]\)。


先往里新增 \(k\) 个数。

注意到只有改变最小值才会产生贡献。

\(a_n + 1\) 带来的影响大于 \(\sum[a_i = a_n]\) 的影响,所以二分最小值,若 \(k\) 有剩余,再去减小 \(\sum[a_i = a_n]\) 。

submission

D1. Reverse Card (Easy Version)

题意:求 \(\sum\limits_{a = 1}^n\sum\limits_{b = 1}^m[b \cdot\gcd(a, b) \mid a + b ]\)。

\[b \cdot\gcd(a, b) \mid a + b \Rightarrow b \mid a \]

不妨枚举 \(a = bi\),此时 \(\gcd(a, b) = b\)。

则 \(b \cdot\gcd(a, b) \mid a + b \iff b \mid i + 1\)。

所以答案为

\[\sum_{b = 1}^m\sum_{i = 1}^{\lfloor\frac{n}{b}\rfloor}[b \mid i + 1] \]

后面一部分即求 \([2, \lfloor\frac{n}{b}\rfloor + 1]\) 有多少 \(b\) 的倍数,直接算 \(\lfloor\dfrac{\lfloor\frac{n}{b}\rfloor + 1}{b}\rfloor - [b = 1]\)。

时间复杂度 \(O(\sum m)\)。

submission

D2. Reverse Card (Hard Version)

题意:求 \(\sum\limits_{a = 1}^n\sum\limits_{b = 1}^m [a + b \mid b \cdot\gcd(a, b)]\)。

不妨设 \(\gcd(a, b) = i, \ a = pi, \ b = qi\),有 \(\gcd(p, q) = 1\)。

那么 \(p + q \mid qi\)。

又因为 \(\gcd(p, q) = 1\),所以 \(p + q \mid i\)。

于是问题转化为

\[\sum\limits_{p = 1}^n\sum\limits_{q = 1}^m[\gcd(p, q) = 1]\sum_{p + q \mid i}[i(p + q) \le \min(n, m)][pi\le n][qi \le m] \]

注意到 \(p < i, \ pi < n\),所以 \(p^2 < n\)。

直接枚举 \(\gcd(p, q) = 1\),计算 \(\min(\lfloor\dfrac{\min(n, m)}{p + q}\rfloor, \lfloor\dfrac{n}{p}\rfloor, \lfloor\dfrac{m}{q}\rfloor)\)。

submission

E. Fenwick Tree

标签:lfloor,gcd,sum,942,mid,rfloor,Codeforces,Div,cur
From: https://www.cnblogs.com/Luxinze/p/18169695

相关文章

  • Codeforces Round 942 (Div. 2)
    CodeforcesRound942(Div.2)A.ContestProposal题意:有n个题目,每个题目的难度为a[i],要求每个题目的难度不大于对应的b[i],每次可以添加一个题目并且删去最难的题目,求最多能添加几个题目思路:暴力枚举即可,只要a[i]大于b[i],就把a[n]改为b[i],然后重新排序voidsolve(){int......
  • Codeforces Round 942 Div.2 题解
    蹭个热度,挽救一下cnblogs蒸蒸日上的阅读量。Q:你是手速狗吗?A:我觉得我是。2A因为选的\(w\)一定可以让它合法,一次操作可以看作\(a\)数组向右平移一位。枚举操作次数后暴力判断即可。#include<bits/stdc++.h>voidwork(){ intn; std::cin>>n; std::vector<......
  • C. Add, Divide and Floor
    链接:https://codeforces.com/problemset/problem/1901/C洛谷链接:https://www.luogu.com.cn/problem/CF1901C思路:首先去重:这里建议分清楚总操作数n和元素总数cnt。然后把去重的元素放在数组中,sort让它升序,取两个极端的差。(因为中间的数会被并到里面去,就是说,可以理解为区间收缩)......
  • Educational Codeforces Round 165 (Rated for Div. 2) 题解
    A对于\(i\top_i\)连边。如果存在二元环,则答案为2。否则答案为3。B非降序排序:0全部在1前面。令0的个数为z。从左往右,将前z个全部填上0。填第\(i\)位时,每次填的最小代价为:若第\(i\)位为1,第\(i\)位右边的第一个0到\(i\)之间的字符个数。(贪心)......
  • Codeforces Round 921 (Div. 1)
    CF1924A签到题CF1924B用set记录每个关键点的位置,每次操作带来的影响可以转化为区间加和区间乘。结果在longlong范围内但过程中可能会超。比较tricky的做法是找一个大于ans的大质数p。在\(GF(p)\)上计算。非常坏卡常CF1924C小学奥数,注意到每次折叠产生的两种折痕长度相等。前......
  • DiviDuelo
    我们先模拟样例,会发现\(1\)是一个特别的数字,如果firstplayer拿到了\(1\)那么肯定就输了于是不难得出结论,如果\(n\)是一个完全平方数,那么firstplayer就G了那么考虑不是完全平方数,显然这里考虑gcd不是\(1\)非常困难,于是考虑secondplayer怎么样才能赢由于gcd要为\(1\),不难想到......
  • Educational Codeforces Round 164 (Div. 2)
    A-PaintingtheRibbon难度:⭐⭐解题思路先看特殊情况,如果m为1肯定不行,n小于等于k也不行;我们可以换位思考,如果Alice用了x种颜色,Bob想把其染为同一种颜色,肯定要先找出这x种颜色中染色区域最多的那一种,然后把其他区域的颜色换成该颜色,这样才是最优策略,所......
  • Manthan, Codefest 18 (rated, Div. 1 + Div. 2) D. Valid BFS?
    题意:给一个树和一个bfs序,并保证从节点1出发,判bfs序是否合法。思路:双指针,在bfs序上从左往右遍历。慢指针指向当前节点u,快指针指向当前节点应该访问的节点的位置。然后设两个集合,一个集合存储在当前节点上应该访问的节点,另一个存储在当前节点上实际访问的节点,然后遍历即可。总结:......
  • Educational Codeforces Round 164
    A-C简单数学题先跳过了,E题水平有限,暂时写不出来下面是D的题意ColoredBall(https://codeforces.com/contest/1954/problem/D)看题目,对于初学者来说,可能不知道使用DP怎么联想到DP的可能还是经验问题下面是个人对题目的拙见题目要求所有幂集组合里需要至少需要多少个二元对才......
  • Codeforces Round 941 (Div. 1) 题解(A-C)
    比赛链接:https://codeforces.com/contest/1965官解链接:https://codeforces.com/blog/entry/128914比较手速的一场,C与D之间出现了较大的gifficultygap。所幸C题猜得比较快(虽然证明其实比较难),最终rank190,performance2525,成功压线拿下Grandmaster。cpchenpi,堂堂上红!......