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

题解:P12558 [UOI 2024] Heroes and Monsters

题面:

(这个没交洛谷,给学弟写的。)

\(O(n^3)\)

考虑直接求出所有 \(ans_i\),前缀和回答询问。
\(a,b\) 先排序。由于我们只关心英雄的集合,所以怪兽我们贪心选择,如果我们选这个英雄那么选最前面的怪兽,否则选后面第一个能打死自己的怪兽。显然,合法方案怪兽的前缀会被英雄打死,后缀会打死英雄,显然了就不证。
\(f_{i,j}\):前 i 个英雄匹配了 j 个怪兽的方案数。
这时我们发现我们选后面第一个能打死自己的怪兽可能会碍后面想打怪兽的英雄的事,所以枚举断点 \(k\)
我们让钦定去悲伤的英雄去选择 \([k+1,n]\) 的怪兽,高兴的英雄去选 \([1,k]\) 的怪兽。

\(f_{i,j}=f_{i-1,j-1}[b_j<a_i]+f_{i-1,j}[b_{k+1+(i-1-j)>a_i}]\)

\(O(n^2)\)

我们找到 \(a_p<b_k<a_{p+1}\) 这样的 \(p\)
那么 \([1,p]\) 的英雄肯定能找到比自己大的怪兽,\([p+1,n]\) 的英雄肯定能找到比自己小的怪兽,并且互不冲突。
那么我们只需要考虑前缀是否能找到比自己小的怪兽,后缀能否找到比自己大的怪兽。

\(f_{i,j}\)\([1,i]\) 的英雄 \(j\) 个找到了比自己小的怪兽的方案数。
\(g_{i,j}\)\([i,n]\) 的英雄 \(j\) 个找到了比自己大的怪兽的方案数。

下面是转移(\(g\) 我们倒着更新,那么肯定是取后缀怪兽):

\(f_{i,j}=f_{i-1,j-1}[b_j<a_i]+f_{i-1,j}\)
\(g_{i,j}=g_{i+1,j-1}[b_{n-(j-1)}>a_i]+g_{i+1,j}\)

那么我们枚举一个数 \(c\),表示 \([1,p]\)\(c\) 个高兴的英雄,那么 \([p+1,n]\)\((k-c)\) 个高兴的英雄。
直接合并就好了。

\(ans_m=\sum_{c=0}^m f_{p,c}×g_{p+1,n-p-(k-c)}\)

http://www.hskmm.com/?act=detail&tid=9278

相关文章:

  • 数据分析与产品、运营、市场之间如何有效对齐 - 详解
  • (附源码)基于Java的学生托管系统的设计与实现 - 实践
  • SVG动画优化全攻略:从设计到性能提升
  • 【GitHub每日速递 250919】MCP 生态新工具!Registry 服务器注册服务预览版,AI 开发者部署认证全流程揭秘
  • 多元积性函数
  • MX 练石 2026 NOIP #7
  • 用Qt打造永远运行的程序/守护进程/程序启动器/实时监测程序运行/后台运行
  • 传话游戏 题解
  • 智驾芯片三强对决:征程6P vs EyeQ Ultra vs Thor
  • 0132_访问者模式(Visitor)
  • 国内AI云市场:挤不进前三,生存将成问题!
  • P14053 [SDCPC 2019] Median 题解
  • lQueryDef查询Evaluate报该几何不包含M值问题。
  • 我的首个RCE漏洞发现之旅:Apache ActiveMQ远程代码执行实战
  • 北京市社保费用差额补缴计算工具
  • 使用自签名SSL证书有什么风险?
  • CDN可以使用iTrustSSL通配符证书吗?
  • OpenCvSharp基于颜色反差规避FBA面单贴标
  • AI CodeReview + Devops协同
  • 【API接口】最新可用手机号归属地查询接口
  • 【API接口】最新可用IP地址查询接口
  • UE5创建的对象无法用ai操控
  • 【API接口】最新可用喜马拉雅接口
  • 25/09/18 小结
  • 【API接口】最新可用番茄畅听接口
  • 【API接口】最新可用七猫短剧接口
  • 磁盘分析工具推荐(Wiztree)
  • 用FastAPI和Streamlit实现一个ChatBot
  • 搜索百科(2):Apache Solr — 企业级搜索的开源先锋
  • Markbook Day03