2023.11.6 信息学日志

1. CF1848C Vika and Price Tags

题目描述

https://www.luogu.com.cn/problem/CF1848C

题目概况

来源:Codeforces

洛谷难度: 绿题 \color{green}绿题 绿题

CF难度: 1800 1800 1800

标签:数论 最大公约数 数对奇偶性

思路点拨

首先原题每次操作使:

  • a i = b i a_i=b_i ai=bi
  • b i = ∣ a i − b i ∣ b_i=|a_i-b_i| bi=aibi
    ( 2 2 2 操作同时进行)
    这个操作本身就是属于九章算术里的更相减损术,最终当 a i = 0 a_i=0 ai=0 时,同理 b i = gcd ⁡ ( a i , b i ) b_i=\gcd(a_i,b_i) bi=gcd(ai,bi),这就证明了对于 ∀ i ∈ [ 1 , n ] \forall i∈[1,n] i[1,n] 均能通过数次操作之后满足 a i = 0 a_i=0 ai=0

a i = 0 a_i=0 ai=0 后,我们会发现一个周期性现象如下

a i a_i ai b i b_i bi
0 gcd ⁡ ( a i , b i ) \gcd(a_i,b_i) gcd(ai,bi)
gcd ⁡ ( a i , b i ) \gcd(a_i,b_i) gcd(ai,bi) gcd ⁡ ( a i , b i ) \gcd(a_i,b_i) gcd(ai,bi)
gcd ⁡ ( a i , b i ) \gcd(a_i,b_i) gcd(ai,bi)0
0 gcd ⁡ ( a i , b i ) \gcd(a_i,b_i) gcd(ai,bi)
gcd ⁡ ( a i , b i ) \gcd(a_i,b_i) gcd(ai,bi) gcd ⁡ ( a i , b i ) \gcd(a_i,b_i) gcd(ai,bi)
…………

由此进入长度为 3 3 3 的循环,之后发现当 a i a_i ai b i b_i bi 的奇偶性所组成的数对决定了到底在第 m m o d    3 m \mod 3 mmod3 次出现 a i = 0 a_i=0 ai=0 的情况.
还有 2 2 2 点需要注意

  • a i = b i = 0 a_i=b_i=0 ai=bi=0 满足任意情况
  • a i m o d    2 = b i m o d    2 = 0 a_i \mod 2 =b_i \mod 2 =0 aimod2=bimod2=0 a i 、 b i a_i、b_i aibi 同时除 2 2 2 直到其中一方没有因子 2 2 2

A C AC AC.

题目收获

分类

2. CF1396B Stoned Game

题目描述

https://www.luogu.com.cn/problem/CF1396B

题目概况

来源:Codeforces

洛谷难度: 绿题 \color{green}绿题 绿题

CF难度: 1800 1800 1800

标签:博弈论

思路点拨

每个人取当前(除上一个人取得石子堆)里含有最多石子的那一堆为最优策略,因为这样才能保住大后方撑得时间更久,用 p r i o r i t y priority priority_ q u e u e queue queue 维护一下即可

A C AC AC.

3. CF645D Robot Rapping Results Report

题目描述

https://www.luogu.com.cn/problem/CF645D

题目概况

来源:Codeforces

洛谷难度: 绿题 \color{green}绿题 绿题

CF难度: 1800 1800 1800

标签:拓扑排序

思路点拨

一道很经典的拓扑排序

能否真正严格排机器人的能力,取决于有没有越过一个临界点,显而易见的是,当越过这个临界点后给再多的消息都可以严格排序(因为不可能出现弱的机器人噶掉强的机器人)。总而言之,消息的数量相对于临界点是单调递增的,只需要二分消息的数量。
总结一下步骤如下:

  • 二分消息的数量
  • 拓扑排序判断其是否严格(经过一次找入度为0的点,至多找到一个否则出现2个机器人能力相对并列的情况

A C AC AC.

trick

确定依赖元素之间的数值严格排序 \color{blue}确定依赖元素之间的数值严格排序 确定依赖元素之间的数值严格排序
(去重满足拓扑排序每次加点操作至多添加一个点 ) \color{blue}(去重满足拓扑排序每次加点操作至多添加一个点) (去重满足拓扑排序每次加点操作至多添加一个点)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

materialistOier

我只是一名ssfoier

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值