【学习笔记】AGC025

静下心来长脑子 。

Interval Game

  • 要使移动的距离最大
  • 显然左右横跳
  • 一个方向显然不会跳两次
  • 下证取 l i > x l_i>x li>x的最大的 l i l_i li最优
  • 首先最优方案一定包含最大的 l i l_i li
  • 考虑两次右移操作
    请添加图片描述
  • 交换操作顺序显然不劣 。
  • 假如存在 l i < 0 l_i<0 li<0
  • 如果 l i → 0 l_i\to 0 li0,则贡献是 0 0 0,否则是 2 l i 2l_i 2li
  • 我们希望最小的 l i l_i li是操作序列的结尾
  • 显然上述构造是满足的
  • 只要知道了初始方向,就可以模拟了。

Choosing Points

  • 我是不是有刷水题的嫌疑
  • 如果只有一个 D D D
  • 显然没有奇环
  • a a a, b b b共同的 2 2 2显然可以约掉
  • 如果 a a a, b b b为奇数,单看横坐标路径长一定是偶数
  • 如果 a , b a,b a,b一奇一偶,单看横纵坐标之和路径长一定是偶数
  • 其实并不重要
  • 二分图染色,求一个连通块能选的最大点数
  • 如果有两个 D D D
  • 分别染色,根据鸽巢原理,存在至少 n 2 n^2 n2个点为同色
  • 为什么dfs染色会wa啊

Addition and Andition

  • 如果有两个为 1 1 1的位置,就会一直左移,直到发生碰撞
  • 同时如果发生碰撞,撞到的一定是那些原本静止不动的点
  • 因此从高位往低位计算
  • 对于每一位的贡献,从低位往高位计算
  • 可以用栈模拟
  • 每次碰撞会少一个点
  • 因此复杂度 O ( n + m ) O(n+m) O(n+m) (和 K K K没关系哈哈哈
  • vscode好评

Differ by 1 Bit

  • 巧妙的构造题
  • 如果 A A A B B B有偶数位不同
  • 显然无解
  • 如果 A A A B B B有奇数位不同
  • 否则对于任意 ( A , B ) (A,B) (A,B)一定有解,下给出构造
  • N = 1 N=1 N=1有构造 { 1 , 0 } / { 0 , 1 } \{1,0\}/\{0,1\} {1,0}/{0,1}
  • 因为把第 i i i位全部取反仍然合法
  • 所以可以异或上 A A A,这样转化为构造 ( 0 , A xor B ) (0,A\text{xor}B) (0,AxorB)
  • 可以把 B B B的任意一位 1 1 1砍掉
  • 假设这一位是 j j j
  • 考虑上半部分构造 ( 0 , 1 ) (0,1) (0,1),下半部分构造 ( 1 , B ) (1,B) (1,B)
  • 这样 B B B的第 n n n位是 1 1 1
  • 把第 j j j位和第 n n n位交换即可
  • vscode好评

Remainder Game

  • K ≤ 50 K\le 50 K50
  • 我会 B F S BFS BFS暴力预处理
  • f [ i ] [ j ] f[i][j] f[i][j]表示从 i i i变成 j j j需要的最小代价
  • 然后从高到低位贪心
  • 注意细节
  • vscode好评
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值