【11.1】【VP】Codeforces Round #730 (Div. 2)

ALL:6
AC:4
补题:0
Rank:729

A. Exciting Bets

题意:

给定非负整数 a , b a,b a,b,你可以进行下面的操作任意次:

  1. 使 a , b a,b a,b 都增加 1 1 1
  2. 使 a , b a,b a,b 都减少 1 1 1(要求操作前 a , b a,b a,b 都大于 0 0 0)。

求出经过若干次操作后 gcd ⁡ ( a , b ) \gcd(a,b) gcd(a,b) 的最大值,并求出至少需要多少次操作以获得这个最大值。特别的,如果 gcd ⁡ ( a , b ) \gcd(a,b) gcd(a,b) 可以变成无限大,输出 0 0 T T T 组数据。
注意 x ≥ 0 x\geq 0 x0 gcd ⁡ ( x , 0 ) = x \gcd(x,0)=x gcd(x,0)=x

数据范围: 1 ≤ T ≤ 5 × 1 0 3 1\leq T\leq5\times10^3 1T5×103 0 ≤ a , b ≤ 1 0 18 0\leq a,b\leq10^{18} 0a,b1018

思路:最大值为 ∣ a − b ∣ |a-b| ab ,即当 a = 2 ⋅ b , a > b a=2\cdot b,a>b a=2b,a>b 时取得。赛时直接猜的结论,要证明的话使用 gcd ⁡ ( a , b ) = gcd ⁡ ( b , a − b ) \gcd(a,b)=\gcd(b,a-b) gcd(a,b)=gcd(b,ab) 证明即可。

AC代码:https://codeforces.com/contest/1543/submission/178761502


C. Need for Pink Slips

题意:题意好麻烦。略。详见 洛谷

思路:刚开始没敢写爆搜,开 D 开不出来之后写了爆搜居然能过(。 d f s dfs dfs 求一下期望即可,搜索大概 1 0 5 10^5 105 级别的。

AC代码:https://codeforces.com/contest/1543/submission/178766680


D1. RPD and Rap Sheet (Easy Version)

题意:

这是本题的简单版本,简单版本和困难版本的区别在于 k k k 的数据范围,在简单版本中 k = 2 k=2 k=2
本题是交互题。
对于十进制数 a , b a,b a,b,我们定义 a ⊕ k b a\oplus_kb akb 的值如下:

  • a , b a,b a,b 转换为 k k k 进制,设 k k k 进制数 c c c,对于每个 i i i c c c 的第 i i i 位的值为 ( a (a (a 的第 i i i 位的值 + b +b +b 的第 i i i 位的值 ) m o d    k )\mod k )modk,则 c c c 在十进制下的值就是 a ⊕ k b a\oplus_kb akb 的值。

交互器会告诉你整数 n , k n,k n,k,同时交互器有一个你不知道的整数 x x x,你知道 x ∈ [ 0 , n − 1 ] x\in[0,n-1] x[0,n1],你需要在 n n n 次猜测中猜出 x x x 的值。每次猜测你需要输出整数 y y y,如果 x = y x=y x=y 那么本组数据交互正确结束,交互器会输入 1 1 1,你应该处理下一组数据(如果有的话),如果 x ≠ y x\not=y x=y,交互器会输入 0 0 0 同时改变 x x x 的值, x x x 的值会变为整数 z z z,其中 x ⊕ k z = y x\oplus_kz=y xkz=y T T T 组数据。
1 ≤ T ≤ 1 0 4 ; 1 ≤ n , ∑ n ≤ 2 × 1 0 5 ; k = 2 ; 1\leq T\leq10^4;1\leq n,\sum n\leq2\times10^5;k=2; 1T104;1n,n2×105;k=2;

思路:赛时猜的结论,输出 i ⊕ ( i − 1 ) , i ∈ [ 0 , n − 1 ] i\oplus (i-1),i\in[0,n-1] i(i1),i[0,n1] 即可。因为这样可以把之前询问的影响消除掉。

AC代码:https://codeforces.com/contest/1543/submission/178767646

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值