NOIP2010模拟赛:射击游戏与排列问题
4星 · 超过85%的资源 需积分: 9 149 浏览量
更新于2024-09-17
1
收藏 76KB DOC 举报
"本文主要介绍了两道NOIP2010模拟赛中的动态规划(DP)题目,包括射击游戏(bugkill)和帅不是错(arrange)。这两道题目都需要运用到动态规划策略来求解问题,寻找最优解。"
**射击游戏(bugkill)**
该题目的核心在于寻找最优的激光发射策略,以最大化得分。游戏中的生物具有分值(value)和倍率(mul)两个属性,激光是两条平行线之间的无限长直线攻击区域。每次射击的得分由击中的生物分值与它们平均倍率的乘积计算,并且要求任意两次攻击的范围不重叠。
**问题分析:**
1. **状态定义**:定义状态dp[i]表示前i个生物被消灭时的最大得分。
2. **转移方程**:对于每个生物j,我们需要计算从第j个生物开始,选择不同的激光方向所能获得的最大得分,然后取其中的最大值更新dp[i]。
3. **优化**:由于角度有限,可以预处理出所有可能的激光方向,然后对每个生物进行遍历。
4. **边界条件**:dp[0]表示没有生物时的最大得分,应初始化为0。
5. **输出**:最终答案为dp[N],即所有生物都被消灭时的最大得分。
**帅不是错(arrange)**
该题目涉及的是如何安排痴迷于hyf的小MM,使得她们之间的八卦传播最小。当第i个MM与hyf约会后,她会沉浸于自己的世界,导致i-1号MM无法传递八卦。
**问题分析:**
1. **状态定义**:状态dp[i][j]表示处理到第i个MM时,最后一个约会的人是第j个MM的最小八卦传递次数。
2. **转移方程**:对于每个i,我们需要考虑约会的MM可能是i-1到1之间的任何一个,计算约会不同的人对后续MM的影响,并选取使dp[i]最小的约会对象。
3. **优化**:可以使用滚动数组或者记忆化搜索来减少空间复杂度。
4. **边界条件**:dp[1][1]表示只有一个MM时,无需考虑约会问题,因此其八卦传递次数为0。
5. **输出**:最后的答案是dp[n][1],表示处理完整个队列后的最小八卦传递次数。
**总结**
这两道题目都展示了动态规划在解决实际问题中的应用,尤其是在寻找全局最优解时。bugkill考察了二维平面上的几何问题与动态规划的结合,而arrange则涉及到序列处理和社交网络的抽象问题。理解并解决这类问题需要对动态规划有深入的理解,同时具备良好的问题建模能力。
2015-07-21 上传
2018-07-21 上传
2018-11-12 上传
2018-10-24 上传
2018-10-24 上传
2018-11-12 上传
2018-11-12 上传
2018-11-12 上传
点击了解资源详情
chi_ya
- 粉丝: 0
- 资源: 3
最新资源
- 探索AVL树算法:以Faculdade Senac Porto Alegre实践为例
- 小学语文教学新工具:创新黑板设计解析
- Minecraft服务器管理新插件ServerForms发布
- MATLAB基因网络模型代码实现及开源分享
- 全方位技术项目源码合集:***报名系统
- Phalcon框架实战案例分析
- MATLAB与Python结合实现短期电力负荷预测的DAT300项目解析
- 市场营销教学专用查询装置设计方案
- 随身WiFi高通210 MS8909设备的Root引导文件破解攻略
- 实现服务器端级联:modella与leveldb适配器的应用
- Oracle Linux安装必备依赖包清单与步骤
- Shyer项目:寻找喜欢的聊天伙伴
- MEAN堆栈入门项目: postings-app
- 在线WPS办公功能全接触及应用示例
- 新型带储订盒订书机设计文档
- VB多媒体教学演示系统源代码及技术项目资源大全