Codeforces 1389 题解(A-E)
A. LCM Problem
若\(a < b\),则\(LCM(a,b)\)是\(a\)的整数倍且\(LCM(a,b) \ne a\),所以\(LCM(a,b) \ge 2a\),当且仅当\(b=2a\)时取等号。
根据这个性质,就可以让\(a=l, b = 2l\),如果符合条件就输出,否则无解。
B. Array Walk
这题暴力+贪心做。
根据贪心,答案必定取在在同一个位置左右横跳的情况下。
由于\(z\)的取值很小,所以直接枚举走到第\(i\)个位置之后左右横跳\(c\)次的收益,然后再加上走完剩余步数的收益,取最大值为答案。
注意,剩余步数为\(1\)且\(c<z\)时要考虑向左走的情况。
C. Good String
易得,字符串符合条件\(\Leftrightarrow\)字符串有长度为2的循环节。
然后就暴力枚举循环节,每次遍历一遍字符串计算代价,代价的最小值就是答案。
注意,仅当循环节的两个字符都一样时才可以不完全循环。
D. Segment Intersections
首先,如果\([l1,r1]\)和\([l2,r2]\)相交,那么就可以不耗费步数增加\(I\)。
然后,若两个线段不相交,则耗费一定的步数之后,可以到达两个线段相交的状态。
在两个线段相交但不完全相等的情况下,耗费1步可以使\(I\)增加1,直到两个线段完全相等。
最后,在两个线段完全相等之后,就只能耗费2步使\(I\)增加1。
然后,就是快乐的模拟过程了,优先使用耗费步数低的操作,直到\(I \ge k\)。
UPD: D题代码被叉了,有个地方可能会出现除零错误,现在已经更新成能过的版本了。
E. Calendar Ambiguity
\(y\)月\(x\)号为第\(yd+x\)天,对应星期\((yd+x) \text{ } mod \text{ } w\)。
题目转换成寻找满足\(yd+x = xd+y \text{ } (mod \text{ } w)\)的\((x, y)\)。
移项并化简后得到\((x - y)(d - 1) = 0 \text{ } (mod \text{ } w)\)。
由于\((d-1)\)是常数并且可能包含\(w\)的某些因子,所以可以将用\(w^{\prime}= \frac{w}{gcd(d-1,w)}\)来替代\(w\),从而消除上述公共因子的影响。
现在的式子为\((x - y)(d - 1) = 0 \text{ } (mod \text{ } w^{\prime})\),其中\((d-1)和w^{\prime}\)没有公共因子。由此,只需要找到满足\((x - y) = 0 \text{ } (mod \text { } w^{\prime})\)的\((x, y)\),即\((x-y)\)应为\(w^{\prime}\)的正整数倍。
根据题意,\(x < y\)且\(x,y\)都是符合要求的月份和日期,所以\((x-y) \in [1, min(m,d)]\)。所以,可以枚举\((x-y)\)的值,计算每个对应值对答案的贡献并累加,从而得到最终的答案。
又因为\((x-y)\)应为\(w^{\prime}\)的正整数倍,所以枚举\(i \times w^{\prime}\)即可。
易得,对于固定的\(k=x-y\),\(k\)对答案的贡献为\(min(m,d)-k\)。所以,最终答案为
\]
很明显,这个式子等差,可以用高斯求和公式在\(O(1)\)的时间内计算。
计算过程可能会炸精度,偷懒用了py写。
Codeforces 1389 题解(A-E)的更多相关文章
- codeforces#536题解
CodeForces#536 A. Lunar New Year and Cross Counting Description: Lunar New Year is approaching, and ...
- codeforces 1093 题解
12.18 update:补充了 $ F $ 题的题解 A 题: 题目保证一定有解,就可以考虑用 $ 2 $ 和 $ 3 $ 来凑出这个数 $ n $ 如果 $ n $ 是偶数,我们用 $ n / 2 ...
- Codeforces Numbers 题解
这题只需要会10转P进制就行了. PS:答案需要约分,可以直接用c++自带函数__gcd(x,y). 洛谷网址 Codeforces网址 Code(C++): #include<bits/std ...
- Codeforces 691E题解 DP+矩阵快速幂
题面 传送门:http://codeforces.com/problemset/problem/691/E E. Xor-sequences time limit per test3 seconds ...
- Codeforces 833B 题解(DP+线段树)
题面 传送门:http://codeforces.com/problemset/problem/833/B B. The Bakery time limit per test2.5 seconds m ...
- Codeforces 840C 题解(DP+组合数学)
题面 传送门:http://codeforces.com/problemset/problem/840/C C. On the Bench time limit per test2 seconds m ...
- Codeforces 515C 题解(贪心+数论)(思维题)
题面 传送门:http://codeforces.com/problemset/problem/515/C Drazil is playing a math game with Varda. Let’ ...
- Codeforces 475D 题解(二分查找+ST表)
题面: 传送门:http://codeforces.com/problemset/problem/475/D Given a sequence of integers a1, -, an and q ...
- CodeForces CF875C题解
题解 非常有意思的\(2-SAT\)的题. 听学长讲完之后感觉确实容易想到\(2-SAT\),顺理成章. 显然,对于两个串,对咱们来说有意义的显然是两个串中第一个不同的数字.那么,我们假设两个串分别是 ...
随机推荐
- 提交项目到码云上git的使用
git clone .. cd 到项目目录 git branch 查看当前的所有分支 git branch shanshan 创建一个属于自己的分支 git checkout shansha ...
- Android Studio局部管理器
1.LinearLayout(线性布局) 该布局将其中的View子控件按照水平或者垂直方向排列.但是需要注意不管是水平还是竖直,对应的每一行或列都只能放一个控件. 线性布局两种排法: 从左到右:and ...
- 关于css布局中,inline-block元素间隙的处理方法
关于inline-block元素间隙的处理 参考橱窗外的小孩,原文链接https://www.cnblogs.com/showcase/p/10469361.html 如下,两个inline-bloc ...
- 精讲RestTemplate第4篇-POST请求方法使用详解
本文是精讲RestTemplate第4篇,前篇的blog访问地址如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用 精讲RestTemplate第2篇-多种底层H ...
- ECS7天实践进阶训练营Day5:使用ECS自建云端下载服务器
一.概述 CCAA是服务器离线下载解决方案包,其组件中包含了Aria2提供了离线下载功能,能支持HTTP/HTTPS/FTP/BT/磁力链下载等常用离线下载模式及断点续传等功能.ccaa_web支撑于 ...
- C#LeetCode刷题之#48-旋转图像(Rotate Image)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3668 访问. 给定一个 n × n 的二维矩阵表示一个图像. 将 ...
- [源码解析] Flink UDAF 背后做了什么
[源码解析] Flink UDAF 背后做了什么 目录 [源码解析] Flink UDAF 背后做了什么 0x00 摘要 0x01 概念 1.1 概念 1.2 疑问 1.3 UDAF示例代码 0x02 ...
- 剑指Offer——II平衡二叉树
class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None # 这道题使用中序遍历加上 ...
- 题解 BZOJ4709
题目描述 一道简单DP优化调了好久qwq 首先分析题目,发现每次从一边取贝壳是完全没用的,此题本质就是将区间分成数个区间,使区间价值和最大. 可以发现一个性质,那就是最优解的每个区间的两端点一定相同且 ...
- 手把手mc开服教学(内置开服核心)
QQ交流群:1125669835 mc开服教程 首先我们需要下载一个开服核心,然后把服务器核心放在一个空文件夹里(这是我的开服核心) 然后再打开(感jio这是废话,要耐心等待......) 然后你会发 ...