冒险岛
来源:互联网 发布:散打软件 编辑:程序博客网 时间:2024/06/08 14:55
冒险岛
Description
这时,我们的主人公F1(没什么名字好取,为了简单,暂且这样)来到了一块神秘的地方——冒险岛,这是一个充满荆棘的地方,随时都可能有生命危险。
F1也深知这一点,他做好了充分的准备,他已经通过高空扫描技术对冒险岛进行了分析:
冒险岛是由
格子有两种形式:沙漠与圣水湖。
每一个沙漠都有一个摧毁值
主人公F1可以向下(行数增加)向右(列数增加)的移动,它必须从
由于某种不为人知的力的作用(外星人?宇宙引力?或是四维空间中的“物质”?谁知道!),使得从
你需要使“精神面貌值”最大。
Input
第一行有两个整数
如果小于
Output
仅一个数,表示最大“精神面貌值”,精确到小数点后
Sample Input
3 3
100 -20 -30
-100 -100 -100
-100 100 –100
Sample Output
0.9091
Solution
二分答案
即
然后就是动归就最大路径了,若最大值小于
Solution
#include <iostream>#include <cstdio>#define LL long long#define Max(x,y) ((x)>(y)?(x):(y))using namespace std;LL n,m;double Maxn;LL map[400][400];double f[400][400];bool judge(double x){ for(LL i=1;i<=n;i++) for(LL j=1;j<=m;j++){ f[i][j]=Max(f[i-1][j],f[i][j-1]); if(map[i][j]<0)f[i][j]+=x*map[i][j]; else f[i][j]+=map[i][j]; } return f[n][m]>=0;}double binary(double l,double r){ double ans=-1; while(r-l>=1e-5){ double mid=(l+r)/2; if(judge(mid)){ ans=Max(ans,mid); l=mid; } else{ r=mid; } } return ans;}int main(){ scanf("%lld%lld",&n,&m); for(LL i=1;i<=n;i++) for(LL j=1;j<=m;j++){ scanf("%lld",&map[i][j]); if(map[i][j]>0)Maxn+=map[i][j]; } printf("%.4lf\n",binary(0,Maxn)); return 0;}
- 冒险岛
- 冒险岛online
- 冒险岛079代码
- 冒险岛在线素材
- 冒险
- 冒险岛 地址搜索问题
- 怀念我的冒险岛
- 冒险岛模拟器研究笔记
- 冒险岛封包拦截研究!
- 冒险岛封包拦截研究!
- 冒险岛无敌外挂代码诠释
- 冒险岛里不合逻辑的地方
- 冒险岛里不合逻辑的地方
- 求个冒险岛SF的外挂````
- 冒险岛无敌挂小思路
- QQ宠物冒险岛全攻略
- 关于 win8.1 玩冒险岛问题
- 韩游 MapleStory2冒险岛2 资源
- android使用NFC的读模式
- Linux内核驱动基础(8)gpio用户空间另一使用案例
- 浅析STM32的hex文件
- 关于runlevel后的显示3或者5
- Android BottomSheet:List列表或Grid网格展示(3)
- 冒险岛
- Gtest在vs 2010上的配置
- setResult和onActivityResult的用法小记
- 广播 (Broadcast)
- VVDocumenter安装不成功的解决办法
- OK6410的6个按键驱动程序(Linux),测试通过
- three.js学习笔记 为模型增添物理效果
- MySQL:最简单,也是最容易犯错的sql问题
- 热学