【3.29-3.30】Codeforces 刷题

做了几道 *1200 的题,感觉水题有点多,暂定每天 *1300 ~ *1700 各一道。



B. Same Parity Summands

题意:把 n n n 拆为 k k k 个正数,使得这些数奇偶性相同。

思路:先均摊为 k k k 个数,剩下的放到第一个数。我们转移 1 1 1 来构造奇偶性。当 a 1 a_1 a1 和后面的数奇偶性相同,输出答案。否则,我们发现 a 1 a_1 a1 和后面的数转移 1 1 1 ,全局奇偶性是不变的,只有后面的数互相转移时会从 2奇 ← → \leftarrow \rightarrow 2偶。此时尝试转移即可。

AC代码:https://codeforces.com/contest/1352/submission/151328382


B1. Palindrome Game (easy version)

题意:

有一个长度为n,只包含0或1的字符串,Alice和Bob轮流进行以下操作之一:

  1. 将字符串中的一个0修改为1,该操作花费为1;
  2. 如果当前字符串不是回文字符串且上家未进行操作2,那么可以花费0将字符串顺序逆置;

如果字符串所有的字符均为1,那么游戏结束

从Alice开始操作,求最后的结果(谁花钱少谁获胜,分Alice胜,Bob胜和平局)

问题的easy版本保证输入字符串一定是回文串,但hard版本不保证。

题解:Palindrome Game—(贪心)

思路:题解很清楚。

  • 把 k = count(‘0’) 的数量分类讨论。当 k 是偶数时,Bob 可以转化为 k = 2 的情况,也就是必胜点。当 k > 1是奇数时,Alice 可以选取中间的 ‘0’ 来把状态必败点转移给 Bob。

AC代码:https://codeforces.com/contest/1527/submission/151333952


B1. Palindrome Game (easy version)

题意:
在水平 O − x O-x Ox 轴上,你起始位置在 0 0 0 处,你的目标位置在 x x x 处,现在你可以进行一个操作,在进行第 i i i 次操作时,且你此刻位置在 y y y ,你可以选择:

  1. 将坐标 y y y 变为 y + k y+k y+k
  2. 将坐标 y y y 变为 y − 1 y-1 y1

问你到达 x x x 的最小操作次数。

题解:B. Jumps(思维) Educational Codeforces Round 99 (Rated for Div. 2)

思路:找到第一个连续进行操作一到达的大于等于 x x x 的坐标 y 1 y_1 y1 ,可以证明当 y + 1 ≠ y 1 y+1≠y_1 y+1=y1 时可以将某个操作一转为操作二来跳到 y y y y + 1 = y 1 y+1=y_1 y+1=y1 的情况也好处理。

AC代码:https://codeforces.com/contest/1455/submission/151336404


C1. k-LCM (easy version)

题意:给出一个正整数 n n n,找到 k k k 个正整数 a 1 , a 2... a k a1,a2 ... ak a1,a2...ak 使得他们的和等于 n n n ,且他们的最小公倍数小于等于 n / 2 n/2 n/2。简单版本中 k = 3 k=3 k=3

题解:Codeforces Round #708 (Div. 2) C1,C2 k-LCM 数学构造

AC代码:https://codeforces.com/contest/1497/submission/151375535


B. Reverse Binary Strings

题意:给你一个长度为 n n n (偶数)的二进制字符串,其中 0 0 0 字符和 1 1 1 的数量相同 。你可以选择任意长度的连续子串进行翻转。求最小反转次数使得字符串 01 01 01 交替。

题解:B. Reverse Binary Strings(思维)Educational Codeforces Round 97 (Rated for Div. 2)

思路:略。

AC代码:https://codeforces.com/contest/1437/submission/151378028

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值