【DP】RQNOJ107[Ural的鹰蛋实验]题解
来源:互联网 发布:mac客人用户退出不了 编辑:程序博客网 时间:2024/05/16 14:38
题目概述
经典的鹰蛋问题,就因为懒所以不写了。
解题报告
不知道大家第一想法是不是二维DP,反正我不是……
2015年,当我还是普及组大菜鸡(现在是提高组大菜鸡)时,我看到了这道题。
然后根本不会,直到教练下发题解……
题解上是……没错……区间DP
(黑历史完……)
显然所有区间都是等价的,唯一重要的是区间长度,所以可以定义
枚举在哪里扔,要考虑碎掉和不碎掉两种状态的最坏情况,即
然而这样效率是
然后?其实还可以优化,但是我不会:P,可以看dalao的论文。
示例程序
记忆化大法好。
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=1000,maxm=10,MAXINT=((1<<30)-1)*2+1;int n,m,f[maxn+5][maxm+5];inline int Log(int n) {for (int i=0;;i++) if ((1<<i)>=n) return i;}int Solve(int n,int m){ int p=Log(n);if (p<=m) return p; if (n==1) return 0;if (m==1) return n-1;if (~f[n][m]) return f[n][m]; f[n][m]=MAXINT; for (int i=2;i<=n;i++) { int now=max(Solve(i-1,m-1),Solve(n-i+1,m))+1; f[n][m]=min(f[n][m],now); } return f[n][m];}int main(){ freopen("program.in","r",stdin); freopen("program.out","w",stdout); memset(f,255,sizeof(f)); while (~scanf("%d%d",&m,&n)) printf("%d\n",Solve(n+1,m)); return 0;}
阅读全文
0 0
- 【DP】RQNOJ107[Ural的鹰蛋实验]题解
- rqnoj-107-Ural的鹰蛋实验-dp
- 【DP】RQNOJ #107 Ural的鹰蛋实验
- XDU 易碎的鸟蛋(鹰蛋实验) Dp问题
- URAL - 1009 简单DP..新的开始...
- Ural - 1018 纠结的树型DP...
- URAL 1031 很简单的DP..
- URAL 1029 Ministry(记录路径的dp)
- ural 1471 Tree题解
- 【URAL 1223】Chernobyl’ Eagle on a Roof(传说中的DP神优化之鹰蛋)
- ural 1119【dp+精度】
- 【DP】ural 1017
- 【树状DP】ural 1018
- URAL - 1012 DP+高精度
- ural DP 1225
- Ural 1018 树dp
- Ural 1225. Flags DP
- ural 1029. Ministry (dp)
- WindowManager对于窗口的管理以及悬浮窗的实现
- toolbar和标题和menu汇总
- c++接口实现
- 树链剖分
- bootstrap基础之三
- 【DP】RQNOJ107[Ural的鹰蛋实验]题解
- 一、FrameBuffer 原理、实现与应用 写屏
- 【deeplearning.ai笔记第二课】2.1 随机梯度下降,批量梯度下降和小批量梯度下降
- 字符串
- PHP+Mysql实现协同办公OA系统源码演示下载
- Jsp内置对象
- 数组元素的有限性验证
- Python爬虫——FileNotFoundError: [WinError 2] 系统找不到指定的文件。
- 贪心算法棋盘覆盖