AC代码

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\)。所以,最终答案为

\[ans = \sum^{\frac{min(m, d)}{w^{\prime}}}_{i = 1} min(m,d) - i \times w^{\prime}
\]

很明显,这个式子等差,可以用高斯求和公式在\(O(1)\)的时间内计算。

计算过程可能会炸精度,偷懒用了py写。

Codeforces 1389 题解(A-E)的更多相关文章

  1. codeforces#536题解

    CodeForces#536 A. Lunar New Year and Cross Counting Description: Lunar New Year is approaching, and ...

  2. codeforces 1093 题解

    12.18 update:补充了 $ F $ 题的题解 A 题: 题目保证一定有解,就可以考虑用 $ 2 $ 和 $ 3 $ 来凑出这个数 $ n $ 如果 $ n $ 是偶数,我们用 $ n / 2 ...

  3. Codeforces Numbers 题解

    这题只需要会10转P进制就行了. PS:答案需要约分,可以直接用c++自带函数__gcd(x,y). 洛谷网址 Codeforces网址 Code(C++): #include<bits/std ...

  4. Codeforces 691E题解 DP+矩阵快速幂

    题面 传送门:http://codeforces.com/problemset/problem/691/E E. Xor-sequences time limit per test3 seconds ...

  5. Codeforces 833B 题解(DP+线段树)

    题面 传送门:http://codeforces.com/problemset/problem/833/B B. The Bakery time limit per test2.5 seconds m ...

  6. Codeforces 840C 题解(DP+组合数学)

    题面 传送门:http://codeforces.com/problemset/problem/840/C C. On the Bench time limit per test2 seconds m ...

  7. Codeforces 515C 题解(贪心+数论)(思维题)

    题面 传送门:http://codeforces.com/problemset/problem/515/C Drazil is playing a math game with Varda. Let’ ...

  8. Codeforces 475D 题解(二分查找+ST表)

    题面: 传送门:http://codeforces.com/problemset/problem/475/D Given a sequence of integers a1, -, an and q ...

  9. CodeForces CF875C题解

    题解 非常有意思的\(2-SAT\)的题. 听学长讲完之后感觉确实容易想到\(2-SAT\),顺理成章. 显然,对于两个串,对咱们来说有意义的显然是两个串中第一个不同的数字.那么,我们假设两个串分别是 ...

随机推荐

  1. IdentityServer4 (1) 客户端授权模式(Client Credentials)

    写在前面 1.源码(.Net Core 2.2) git地址:https://github.com/yizhaoxian/CoreIdentityServer4Demo.git 2.相关章节 2.1. ...

  2. demo3同通讯录展示的方式分组排序

    按A-Z顺序分组展示 有些项目中会需要这样的需求.形成类似于上述的界面.类似于通讯录里边的排序.实现的效果:所有的数据展示的时候,能够分组展示.顺序按照A-Z的书序进行排列.如果不是以A-Z开头,则默 ...

  3. Proteus 8使用 1新建一个Proteus工程

    新建一个Proteus工程 下一步 创建部分结束,可以看到两部分-->原理图与源代码. 首先按下F7或从“构建”菜单中选择“构建工程” 之后切换到原理图窗口 按下F12或点击窗口最左下角的“运行 ...

  4. Python 进程与多线程

    10 进程和多线程 10.1 多进程 # -*- coding: utf-8 -*- import os pid=os.fork() print ('process (%s)start ...' %o ...

  5. ASP.NET Core3.x 基础(1)

    ASP.NET Core与2.x相比发生的一些变化: 项目结构 Blazor SignalR gRPC 关于Program类:Main方法,在系统执行时就会找到这个Main方法,实际上是配置了ASP. ...

  6. C++输出错误信息perror、strerror以及全局变量errno

    头文件:#include<stdio.h>函数:perror.strerror,全局变量:errno.使用方法: FILE *fp; if((fp = fopen("test.t ...

  7. 集中式版本管理系统 SVN使用

    SVN的使用 SVN的文件状态 黑色:正常的文件 黄色文件(在Android Stduio中颜色):被忽略的文件 红色:文件没有Add的新文件(没有加入版本控制subversion中) 绿色:新文件A ...

  8. 手牵手,使用uni-app从零开发一款视频小程序 (系列下 开发实战篇)

    系列文章 手牵手,使用uni-app从零开发一款视频小程序 (系列上 准备工作篇) 手牵手,使用uni-app从零开发一款视频小程序 (系列下 开发实战篇) 扫码体验,先睹为快 可以扫描下微信小程序的 ...

  9. 开发过程中遇到的-npm加载进node_modules里的文件怎么修改

    来源:https://juejin.im/post/5ec381215188256d776342cd https://mp.weixin.qq.com/s?__biz=MzUzNjk5MTE1OQ== ...

  10. 第5篇 Scrum 冲刺博客

    1.站立会议 照骗 进度 成员 昨日完成任务 今日计划任务 遇到的困难 钟智锋 完成技能 完全重构游戏逻辑代码,并编写调试模块 队友的代码已经和想法相去甚远 庄诗楷 制作了开始游戏的界面 进行了相关的 ...