当前位置: 首页 > news >正文

Codeforces Round 1049 (Div. 2) 一些 idea

Codeforces Round 1049 (Div. 2) 一些 idea

A

B

设 y 有 k 位
\(x + y | x * 10 ^ k + y \Leftrightarrow x + y | x (10^k - 1)\)
很明显,y 可以取 :\(2x\), \(8x\), \(10^k - 1 - x\) (这里 \(k\) 可以取 \(9\))

C-E

C-E 的关键是,拆贡献。

如果一个信息是由多个信息决定,但是可以通过简单的运算得到,那么就可以拆开来。

比如背包是求和,所以可以一个一个加;而函数复合不能拆,只能由两个信息合并。

拆贡献的关键是独立性。交换律说明每一部分都是独立的。

C

\(cost\)\(r - l\), 也就是说一次的改变量是 \(delta_{a_l} + delta_{a_r} + r - l\)

\(delta_{a_l}\)\(l\) 由节点 \(l\) 决定,\(delta_{a_r}\)\(r\) 由节点 \(r\) 决定。

加法显然有交换律,所以可以拆贡献(其实这里没有交换律也可以,因为顺序是固定的:先找到 \(l\) 再找到 \(r\)

然而 \(delta\) 由两者决定,更具体来说是两者的下标奇偶决定,因此需要分开来考虑。

D

如果是奇数,先删去一个区间。
同样是 \(r - l\), 拆贡献,选为 l 则为 -l,选为 r 则为 +r。

每个东西两种选择会有一些差值。这决定了选 l 和选 r 的 “好的程度”。

如何比较好的程度?

考虑原先全选 l,然后把 l 变 r 的好处是 r - (-l)。我们选择最大的这 n / 2 个。

E

博弈题,最终答案是一些东西取 min/max。我们确定一个数组的答案是困难的,但是确定 >= x 是简单的。

这是一种常见的拆贡献,原因是 \(min = x\) 是困难的,不可拆的,\(min >= x\) 是可以拆的。

f(a) = ge(fa(a), 1) + ge(fa(a), 2) + ...

ge(fa(a), x),我们可以离散化,将 ge(x) 和 less(x) 分开,这样就转化成了 E1。

http://www.wxhsa.cn/company.asp?id=165

相关文章:

  • 医学如果不追求深入的话,其实门槛没有特别高
  • Canvas 的性能卓越,用它解决一个棘手的问题!
  • CSS Box-Sizing 详解:解决移动端布局溢出问题的关键
  • Visual Studio Code 开发环境搭建(Rust)
  • Spring Boot 项目中,同一个版本的依赖,内容却不一样?一次因依赖污染导致 Redis 启动失败的排查
  • 微信机器人开发文档
  • 从0到1:餐饮微信点餐小程序源码解析(含扫码点餐+外卖系统+后台管理)
  • 推荐一款线程or进程间数据同步解决方案
  • part 2
  • Apache服务器自动化运维与安全加固脚本详解
  • 无障碍资源导航
  • The 2022 ICPC Asia Shenyang Regional Contest
  • 还在微信群追问任务进展?领歌看板让逾期工作无处可藏
  • 别再猜了-开始测量吧-一份实用的Web性能指南
  • 你的开发服务器在说谎-热重载与热重启的关键区别
  • 大屏开发
  • 检测域名证书有效期
  • PostgreSQL 内机器学习的关键智能算法研究
  • [node] Linux 环境安装 nvm 并通过 nvm 控制 node 版本
  • Gitee崛起:中国开发者为何纷纷转向本土代码托管平台
  • TCP反向代理:将局域网内部的TCP/HTTP服务暴露在公网上
  • 告别数月等待:数字孪生场景生成从此进入“日级”时代
  • Vue.js:大屏开发实战
  • xtrabackup8.0本地备份和恢复(xbstream+gzip)
  • Docker网络
  • 神器内存分配器(Allocator)设计:从原理到高性能实现的深度探索
  • 后端Coder如何做好代码设计?
  • Symfony学习笔记 - Symfony Documentation - Frontend
  • xtrabackup8.0本地备份和恢复(xbstream+compress)
  • 安装云图解析python模块碰到的问题