UOJ 17

题意:在\(n\times m\)的网格中有一些柱子,它们可以通过的区间是\((L_i,R_i)\),位置在\(P_i\)。在第i个位置点击一次会使高度增加\(X_i\),不点击会使高度减少\(Y_i\)。可以重复点击,效果叠加。问最少需要多少次点击来通过这个游戏。或者输出最多能通过的柱子个数。

思路:考虑\(dp(i,j)\)表示到了\((i,j)\)这个点的最少点击次数。

然后转移方程如下:\(dp(i,j)=min dp(i-1,j-kX_{i-1})+k,dp(i-1,j+Y_{i-1})\)。

但是这肯定只能拿\(70pts\)。

所以我们需要进行一些优化。我们记\(min dp(i-1,j-kX_{i-1})+k\)为\(g(i,j)\),那么转移分为两步:

\(dp(i,j)=min(g(i,j),dp(i-1,j+Y_{i-1})\)

\(g(i,j)=min(g(i,j-X_{i-1}), dp(i-1,j-X_{i-1}))+1\)

然后就好了。

其实根本不用这样想,我们只需要这样转移:

首先从小到大枚举\(j\),对于每一个\(j\)更新\(dp(i+1,j+X_i)\)为\(min(dp(i,j),dp(i+1,j))+1\);

然后从小到大(其实这里无所谓)枚举\(j\),对于每一个\(j\)更新\(dp(i+1,j)\)为\(dp(i,j+Y_i)\)。

这样肯定是对的,因为所有的\(dp(i,j)\)都更新到了\(dp(i+1,j+X_i)\),然后又随着\(dp(i+1,j+X_i)\)到了\(dp(i+1,j+2X_i)...\)。

然后需要注意我们的答案在取的时候不要\(dp(i,j)=\infty\)的也取进去。。。

【UOJ 17】飞扬的小鸟的更多相关文章

  1. UOJ #17. 【NOIP2014】飞扬的小鸟 背包DP

    #17. [NOIP2014]飞扬的小鸟 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4902  Solved: 1879 题目连接 http:// ...

  2. 洛谷 P1941 飞扬的小鸟

    洛谷 P1941 飞扬的小鸟 原题链接 首先吐槽几句 noip都快到了,我还不刷起联赛大水题! 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节 ...

  3. P1907飞扬的小鸟

    P1907飞扬的小鸟 描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或 ...

  4. [codevs3729]飞扬的小鸟

    [codevs3729]飞扬的小鸟 试题描述 输入 输出 输出文件名为 bird.out. 共两行. 第一行,包含一个整数,如果可以成功完成游戏,则输出 1,否则输出 0. 第二行,包含一个整数,如果 ...

  5. Codevs 3729==洛谷P1941 飞扬的小鸟

    P1941 飞扬的小鸟 456通过 2.4K提交 题目提供者该用户不存在 标签动态规划2014NOIp提高组 难度提高+/省选- 提交该题 讨论 题解 记录   题目描述 Flappy Bird 是一 ...

  6. NOIP2014 飞扬的小鸟

    3. 飞扬的小鸟 (bird.cpp/c/pas) [问题描述] Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的 ...

  7. Codevs 3729 飞扬的小鸟

    飞扬的小鸟 标签 动态规划 NOIp提高组 2014 难度 提高+/省选- 题目描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小 ...

  8. [NOIP2014][DP]飞扬的小鸟

    [NOIP2014]飞扬的小鸟 ——!x^n+y^n=z^n 题目描述: Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画 ...

  9. Luogu 1941 【NOIP2014】飞扬的小鸟 (动态规划)

    Luogu 1941 [NOIP2014]飞扬的小鸟 (动态规划) Description Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度 ...

随机推荐

  1. docker swarm 搭建及跨主机网络互连案例分析

    准备工作 安装docker,不建议直接使用Docker官方的yum install docker wget http://yum.dockerproject.org/repo/main/centos/ ...

  2. tomcat8 manager页面限制IP访问

    tomcat8 manager页面限制IP访问 配置tomcat8/webapps/manager/META-INF/context.xml <Context antiResourceLocki ...

  3. Python全栈学习_day005知识点

    今日内容大纲: . 字典的增删改查以及其他操作 . 字典的嵌套 . 字典的增删改查以及其他操作 , 'sex': '男'}, 'name_list': ['无双', 'alex', 'BlameK'] ...

  4. Python:dictionary

    # Python3.4 Eclipse+PyDev 打开Eclipse,找到Help菜单栏,进入Install New Software…选项. # 点击work with:输入框的旁边点击Add…, ...

  5. 理解微信小程序Wepy框架的三个事件交互$broadcast,$emit,$invoke

    $broadcast: $broadcast事件是由父组件发起,所有子组件都会收到此广播事件,除非事件被手动取消.事件广播的顺序为广度优先搜索顺序,如上图,如果页面Page_Index发起一个$bro ...

  6. putty之pscp上传文件

    控制台下打开pscp可执行文件 命令 >pscp -i 证书名 -r 要上传的文件 root@服务器路径:/opt

  7. AppBoxPro(权限管理框架--FineUIPro基础版+工厂模式+ADO.NET+存储过程)

    FineUIPro基础版火爆来袭,特献上ADO.NET纯SQL方式AppBoxPro,希望大家能够喜欢! 下载源码请到[知识星球] https://t.zsxq.com/3rrNFyv

  8. selenium win7+selenium2.0+python环境搭建

    win7+selenium2.0+python环境搭建 by:授客 QQ:1033553122 步骤1:下载python 担心最新版的支持不太好,这里我下载的是python 2.7(selenium之 ...

  9. (其他)SQL注入(转)

    转自维基百科: SQL注入是一种代码注入技术,用于攻击数据驱动的应用程序,在这种应用程序中,恶意的SQL语句被插入输入字段中执行(例如将数据库内容转储给攻击者).[1] SQL注入必须利用应用程序软件 ...

  10. Nginx下配置网站SSL实现https访问本站就是用的这方法

    本文出至:新太潮流网络博客 第一步:服务器环境,lnmp即Linux+Nginx+PHP+MySQL,本文中以我的博客为例,使用的是阿里云最低档的ECS+免费的Linux服务器管理系统WDCP快速搭建 ...