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

Codeforces Round 1049 (Div. 2) 部分题解

Codeforces Round 1049 (Div. 2) 部分题解

D. A Cruel Segment's Thesis

可以发现最后是选 \(\lfloor\frac{n}{2}\rfloor\) 对区间,一半取 \(r\) 一半取 \(l\) 配对相加。

那可以假定所有区间选 \(r\) 再选出 \(l+r\) 最优的一半区间合进去就可以了。

\(n\) 是奇数时,需要删掉一个区间不计入答案,我们枚举删除的区间是哪个,统计删除后的答案是容易的。

E. Prime Gaming

E1 可以用 dp,\(f_{n,s,0/1}\) 表示现在剩 \(n\) 个状态为 \(s\) 先后手走最终的剩余是什么。

现在考虑 E2,先考虑怎么确定一个序列的最终答案,考虑枚举这个答案,将小于其的设 \(0\) 大于等于的设 \(1\) ,若这个状态答案为 \(1\) 则答案大于等于这个值。

E2 可以枚举答案 \(k\) ,将序列大于等于 \(k\) 的设 \(1\) 小于 \(k\) 的设 \(0\) 就又转化成了 E1 的问题,于是可以统计出来最终答案大于等于 \(k\) 的序列个数,差分一下就是恰好等于 \(k\) 的序列个数,就可以相加了,复杂度 \(O(n2^n+nm)\)

bonus,求对于 \(m \leq 10^9\) ,每个数互不相同的答案。

求出 \(cnt[s]\) 表示多少个二进制序列最终答案为 \(1\),答案为:

\[\sum_{i=1}^m\sum_{r=1}^n \binom{i-1}{n-r}\binom{m-i+1}{r}cnt[r]\cdot r!(n-r)! \]

转化一下:

\[=\sum_{r=1}^n cnt[r]r!(n-r)!\sum_{i=1}^m\binom{i-1}{n-r}\binom{m-i+1}{r} \]

第二个和式的组合意义为:将 \(m\) 个数划分,左边选 \(n-r\) 个右边选 \(r\) 个,等价于 \(m\) 个数选 \(n-r+r\) 个,这个划分不完整(\(i=m\) 时不是全部左划分),去掉一种情况(其实这个边界答案就是 \(0\)),化简为:\(\binom{m}{n}\),得到答案:

\[=\sum_{r=1}^ncnt[r]r!(n-r)!\binom{m}{n} \]

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

相关文章:

  • Critical Thinking Academic Writing
  • 1.3 课前问题思考
  • 【知识管理工具分享】基于AI搭建个人法律知识库:我的PandaWiki实践心得
  • 你的中间件一团糟-是时候修复它了-️
  • 超越-env-一份成熟的应用程序配置指南
  • 告别框架臃肿-我如何在不牺牲性能的情况下重新发现简单之美
  • 像元大小(例如 1.4 m 1.4 m)具体的含义和用途
  • Codeforces Round 1049 (Div. 2) 一些 idea
  • 医学如果不追求深入的话,其实门槛没有特别高
  • 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服务暴露在公网上
  • 告别数月等待:数字孪生场景生成从此进入“日级”时代