首页 > 其他分享 >AtCoder Regular Contest 185 题解

AtCoder Regular Contest 185 题解

时间:2024-10-24 19:23:34浏览次数:8  
标签:AtCoder cdot 题解 sum Alice 185 bmod Bob round

A - mod M Game 2

第一个观察是如果一个人手中还有 2 张牌,那么他一定不会被秒。

这可以推出决定胜负的时刻一定是 Alice 和 Bob 手中只剩一张牌的时候,此时如果 Alice 被秒了,那么她就似了,否则她就赢了。

考虑 Alice 什么时候能被秒。记决定胜负的时刻 Alice 手中的牌是 \(a\),Bob 手中的牌是 \(b\),那么 Alice 被秒的必要条件就是 \(b \equiv N (N + 1) \pmod M\),不妨去证明它也是充分的。

  • 若 \(1 \le N(N + 1) \bmod M \le N\),此时 \(b = N(N + 1) \bmod M\)。当 Bob 有 \(\ge 3\) 张牌时,他可以留着 \(b\) 这张牌不出;当 Bob 有恰好 2 张牌时,若 Bob 留着 \(b\) 不出,那么此时牌的和为 \(N(N + 1) - a - b\),不难发现它一定不会是 \(M\) 的倍数,所以 Bob 可以留着 \(b\) 不出。由此可知,Bob 一定能赢。
  • 否则,Bob 一定输。

可以 \(O(1)\) check。

B - +1 and -1

关键性质:操作不会改变数列的和。

记 \(sum = \sum_{i} A_i\)。
我们可以构造一个新序列 \(A'\),满足 \(\forall i \in [1, n - sum \bmod n], A'_i = \lfloor sum / n \rfloor\),\(\forall i \in [n - sum \bmod n + 1, n], A'_i = \lceil sum / n \rceil\)。

大胆猜测,如果 \(A\) 能调整成不降的序列,那么 \(A\) 一定能调整成 \(A'\)。
这显然是正确的,因为我们可以对 \(A\) 调整成的不降的序列贪心调整。

所以只需要 check \(A\) 是否能调整成 \(A'\) 即可,这个可以贪心判断。

时间复杂度 \(O(n)\)。

C - Sum of Three Integers

枚举 \(i\),然后就转化成了寻找 \(j, k\) 使得 \(a_j + a_k = X - a_i\)。

先考虑如何判断可行性。
记 \(F(x) = \sum_{i = 1}^n x^{a_i}, G(x) = F^2(x) - \sum_{i = 1}^n x^{2a_i}\),那么 \([x^{X - a_i}] G(x)\),就是 \(j, k\) 的方案数。
然后暴力判断即可,注意实现,不要多次进循环。

时间复杂度 \(O(V \log V + n)\)。

D - Random Walk on Tree

先考虑 \(m = 1\) 的情况,此时图是一个菊花。
我们走过的路一定是从 0 走到叶子,然后再返回根,记这为一次 round trip。
考虑如果已经染了 \(i\) 个叶子,此时还需要的 round trip 次数为 \(\frac{N}{N - i}\)。
所以答案为 \(2 \cdot\big(\sum_{i = 0}^{N - 1} \frac{N}{N - i} \big) - 1\)(最后一次到叶子无需返回)。

对于 \(m \ge 1\) 的情况,发现一次 round trip 的期望步数为 \(2m^2\)(多分支不影响 round trip 的步数),那么可以得到答案为 \(m^2\) 乘上 \(m = 1\) 的答案。

时间复杂度线性。

E - Adjacent GCD

考虑从小到大枚举 \(i\),计算答案的变化量。

首先原本的答案会乘 2,因为可以把原本的 \(A_i\) 状态取反形成新的状态。
然后要计算 \(A_i\) 的贡献,即 \(\sum_{j < i} 2^{j - 1} \gcd(A_j, A_i)\)。

考虑维护每个值的贡献系数 \(k_i\),那么就转化为了求:

\[\sum_{i = 1}^n k_i \cdot \gcd(i, x) \]

直接上欧拉反演:

\[\begin{aligned} &\sum_{i = 1}^n k_i \cdot \gcd(i, x) \\ = \ & \sum_{i = 1}^n k_i \cdot \sum_{d \mid \gcd(i, x)} \varphi(d) \\ = \ & \sum_{d \mid x} \varphi(d) \cdot \sum_{d \mid i} k_i \end{aligned} \]

这样就能做到 \(O(n \cdot d(n))\) 了。

标签:AtCoder,cdot,题解,sum,Alice,185,bmod,Bob,round
From: https://www.cnblogs.com/definieren/p/18500275

相关文章

  • 23~24 炼石计划 NOIP 练习题部分题解
    目录目录第1组JOISC2017火车旅行IOI2018会议CF1558FStrangeSortAPIO2018新家CTSC2017密钥CF1748EYetAnotherArrayCountingProblem第2组NOI2016区间LOJ552MIN&MAXIJOISC2023合唱LOJ542序列划分LOJ560Menci的序列P8978中位数第3组USACO20FEBHelpYourse......
  • CF35C. Fire Again 题解 bfs求最短路
    题目链接:https://codeforces.com/problemset/problem/35/C视频讲解:https://www.bilibili.com/video/BV1tZ1FYPELp/?p=4以每个着火的点为起点求最短路,然后输出任意一个距离值最大的点即可。需要注意的是:本题是文件输入输出。示例程序:#include<bits/stdc++.h>usingnamespace......
  • CF1139C. Edgy Trees 题解 并查集
    题目链接:https://codeforces.com/problemset/problem/1139/C视频讲解:https://www.bilibili.com/video/BV1tZ1FYPELp?p=3我们可以求总方案数-不满足条件的方案数。设一个不包含黑色边的极大连通块的大小为\(sz_i\)。则答案为\[n^k-\sum\{sz_i^k\}\]示例程序:#include......
  • CF1800E2. Unforgivable Curse (hard version) 题解 并查集
    题目链接:https://codeforces.com/contest/1800/problem/E2视频讲解:https://www.bilibili.com/video/BV1tZ1FYPELp?p=2把下标\(i\)对应到图中编号为\(i\)的节点。节点\(i\)和\(i+k\)之间连一条边,节点\(i\)和\(i+k+1\)之间也连一条边。同一个连通块里的节点对应的字......
  • P5661 [CSP-J2019] 公交换乘 题解
    模拟"公交换乘"按题意模拟即可.注意:可以使用结构体,但是超过时间的优惠券需要被忽略.代码#include<iostream>#include<cstdio>usingnamespacestd;structnode{ intprice,deadline,is_use;//价格,截止时间,是否使用过}a[100005];intn,p,ans,pos=1;int......
  • P5662 [CSP-J2019] 纪念品 题解
    背包因为小伟可以每天进行$2$种操作无限次,所以显然可以使用完全背包.定义状态$f_i$,表示还剩下$i$时,可以拿到钱的最大值.再假设小伟今天买了,明天就卖掉.状态转移方程如下:$f_i=max(f_i,f_{i-p_{k,i}}+p_{k+1,i}-p_{k,i}).$即今天花掉的钱+明天能拿的钱-今天花掉的......
  • P5663 [CSP-J2019] 加工零件 题解
    最短路对于上图,如果我们相知道$2$号工人想要一个$3$阶段的零件,其实是看$2$到$1$有没有一条长度为$3$的路径.但如果要求$4$阶段的路径,那就不一定了.所以我们直接求一遍最短路,分奇最短路和偶最短路.处理完后,最后一次$\Theta(1)$的回答,如果路径长度过大,就是$No$,......
  • Nginx的 MIME TYPE问题导致的mjs文件加载出错的问题解决
    .mjs文件:明确表示使用ES6模块系统(ECMAScriptModules)。 在服务器用Nginx部署前端项目后,出现下面这种问题Failedtoloadmodulescript:ExpectedaJavaScriptmodulescriptbuttheserverrespondedwithaMIMEtypeof"application/octet-stream".StrictMIMEt......
  • P1668 USACO04DEC Cleaning Shifts S 题解
    P1668USACO04DECCleaningShiftsS-洛谷分析这道题最快的做法应该是贪心,但是线段树优化DP也可以做。首先看到此题,可以想到一个很暴力的区间DP:\(f[i][j]\)表示在\([i,j]\)时段内最少需要的奶牛数量。对于每头牛的空闲时段\([l,r]\),其每个子区间答案均为\(1\);对于......
  • AtCoder Snuke21 J. Drink Bar 部分分题解
    这里将每一个三元组\((a_i,b_i,c_i)\)称为一组数。Subtask1暴力枚举所有的非空子集即可。枚举方式可以采用类似状压DP的二进制枚举或者直接DFS。时间复杂度\(O(N\times2^N)\)。Subtask2性质:此时的特征值最多由两个有效组组成,原因可见Subtask3。因为\(a_i=......