【5.7】Codeforces 刷题

B. Simple Game

题意:给 n,m (m <= n),求一个数 a(1<= a <=n), 使得当 c 在 1 到 n 的整数中 随机取值时 ,|c-a| < |c-m| 成立的概率最大。

思路:特判 n=m=1。然后判断 n-1 和 m-n 的大小,哪边更大选哪边。

AC代码:https://codeforces.com/contest/570/submission/156198893


C. Phoenix and Towers

题意:给你 n 个数, 要求你把这些数字分成 m 组, 使得任意两组之间的差值不超过 x .

思路:贪心。。优先队列维护,选当前高度最小的加上去。因为保证了 h i ≤ x h_i ≤ x hix ,因此必定存在解,任意顺序添加都可。题解 CF1515C 【Phoenix and Towers】


C. Ehab and Path-etic MEXs

题意:

在这里插入图片描述

思路:

首先分析。定义 m e x = max ⁡ { M E X ( u , v ) } mex = \max\{MEX(u,v)\} mex=max{MEX(u,v)} 。因为 0 必定存在某条链中,因此 m e x ≥ 1 mex≥1 mex1 。因为图联通,必定存在某条链同时含有 0 1,因此 m e x ≥ 2 mex≥2 mex2

2 就是一个下界,我们思考能否构造出这样的下界。思考后发现 mex=2 的情况只与 0 1 2 同时有关,当这三个数出现在一条链中 mex > 2 ,否则 mex = 2。什么时候不在一条链上呢?我们利用非链无根树的性质:必定存在某个节点存在至少三棵子树。我们找到这样的点,把 0 1 2 分配上去即可。

AC代码:https://codeforces.com/contest/1325/submission/156203262


B. Moderate Modular Mode

题意:给定两个偶数 x , y x,y x,y

求一个 n ∈ [ 1 , 2 × 1 0 18 ] n \in [1,2\times10^{18}] n[1,2×1018] 满足 n   m o d   x = y   m o d   n n \bmod x = y \bmod n nmodx=ymodn

一个测试点有多组数据,数据保证有解

思路:关键在于 x < y 的情况。找到小于等于 y 的最大 x 的倍数 kx,然后取中间值即可。可以保证 n   m o d   k x = n   m o d   x , n ≥ k x n \bmod {kx}=n \bmod x,n≥kx nmodkx=nmodx,nkx

这里总结了式子:当 x , y ≥ 1 x,y ≥ 1 x,y1

k × x ≤ y , k m a x = ⌊ y x ⌋ × x k\times x ≤ y,k_{max}=\lfloor \frac y x \rfloor \times x k×xy,kmax=xy×x

k × x < y , k m a x = ⌊ y − 1 x ⌋ × x k\times x < y,k_{max}=\lfloor \frac {y-1} x \rfloor \times x k×x<y,kmax=xy1×x

k × x ≥ y , k m i n = ⌈ y x ⌉ × x k\times x ≥ y,k_{min}=\lceil \frac y x \rceil \times x k×xy,kmin=xy×x

k × x > y , k m i n = ⌈ y + 1 x ⌉ × x k\times x > y,k_{min}=\lceil \frac {y+1} x \rceil \times x k×x>y,kmin=xy+1×x

AC代码:https://codeforces.com/contest/1603/submission/156282752


D. Vasya and Chess

题意:

在这里插入图片描述
题解:CF493D Vasya and Chess 题解

思路:和环形博弈有异曲同工之妙,但是没想出来。奇数时先手必败,偶数先手时可以转化为奇数后手的情况,此时必胜。

AC代码:https://codeforces.com/contest/493/submission/156282913

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值