http://172.20.6.3/Problem_Show.asp?id=1445

很容易看出来动态规划的本质,但是之前写的时候被卡了一下(不止一下),还是写一下题解。

直接暴力O(n*m^2)大概是70分,比较划算。

100分需要对上升下降方式找规律然后优化到O(nm);

可以看出,70分算法有很多时间浪费在没必要的上升计算上,为了减少上升计算,我们可以在预处理后把上升计算变为只有一次。

把下降的放在最后处理。

观察可以发现f[i][x]的赋值只可能来自于下面升上来的,其实本质就是一个有一点特殊的完全背包,然后背包处理就可以了。(不一定要像我那样写的,我觉得其实有更好看更容易懂的写法)

最后再处理一个下降的方案比较后赋值。

 #include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<iostream>
using namespace std;
const int maxn=;
int n,m,k;
int a[maxn][]={};
int f[maxn][]={},g[]={};
int d[maxn]={};
struct nod{
int p,l,h;
}e[maxn];
bool mmp(nod aa,nod bb){
return aa.p<bb.p;
}
int main(){
//freopen("wtf.in","r",stdin);
scanf("%d%d%d",&n,&m,&k);
for(int i=;i<=n;i++){
scanf("%d%d",&a[i][],&a[i][]);
}
for(int i=;i<=k;i++){
scanf("%d%d%d",&e[i].p,&e[i].l,&e[i].h);
}sort(e+,e++k,mmp);
for(int i=;i<=k;i++){
d[e[i].p]=i;
}
memset(f,,sizeof(f));
int ans=f[][],cnt=f[][];
for(int i=;i<=m;i++)f[][i]=;
int w=;
for(int i=;i<n;i++){
int mi=,ma=m;
if(d[i]){
mi=e[d[i]].l+,ma=e[d[i]].h-;
}
int ff=;
memset(g,,sizeof(g));
for(int j=mi;j<=ma;j++){
g[j]=f[i][j];
if(f[i][j]!=cnt)ff=;
}
for(int j=;j<=m;j++){
int x=min(m,a[i+][]+j);
g[x]=min(g[x],g[j]+);
}
for(int j=;j<=m;j++){
int x=min(m,a[i+][]+j);
f[i+][x]=min(f[i+][x],g[j]+);
}
for(int j=mi;j<=ma;j++){
if(j-a[i+][]>) f[i+][j-a[i+][]]=min(f[i+][j-a[i+][]],f[i][j]);
}
if(!ff){
printf("0\n%d\n",w);
return ;
}
if(d[i])w++;
}
for(int i=;i<=m;i++){
ans=min(ans,f[n][i]);
}
printf("1\n%d\n",ans);
return ;
}

JZYZOJ1445 [noip2014day1-T3]飞扬的小鸟 动态规划 完全背包的更多相关文章

  1. NOIP 2014 Day1 T3飞扬的小鸟

    题目描述:http://codevs.cn/problem/3729/ 表示各种shabi的我编和调了半天,思路大体就是一个完全背包的模型,不过会多一些额外的转移(因为题目限制高度之类的),不过值得注 ...

  2. vijos1907[noip2014]飞扬的小鸟(完全背包)

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

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

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

  4. P1907飞扬的小鸟

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

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

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

  6. Codevs 3729 飞扬的小鸟

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

  7. luogu 1941 飞扬的小鸟

    这道题对于第13个数据点,不知为什么f数组第二位开到2000以下就不能过,求指教 飞扬的小鸟 传送门 题目大意 一个小鸟在\(n*m\)的方阵里,然后有许多管道你们玩过就不多介绍了,然后每一个位置,点 ...

  8. [codevs3729]飞扬的小鸟

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

  9. NOIP2014 飞扬的小鸟

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

随机推荐

  1. 【Atcoder】CODE FESTIVAL 2017 qual C D - Yet Another Palindrome Partitioning

    [题意]给定只含小写字母的字符串,要求分割成若干段使段内字母重组顺序后能得到回文串,求最少分割段数.n<=2*10^5 [算法]DP [题解]关键在于快速判断一个字符子串是否合法,容易发现合法仅 ...

  2. Fermat2018游记

    day (-22) 2018年2月5日 Devin大佬给我发了一份Waterloo AIF的原件截图,发现里面居然直接问你的Fermat分数,那么这么重要的考试当然不能错过啊 若干天之后刚开学不久的一 ...

  3. HDU 2199 二分

    我们可以发现这个函数是单增的,那么这样二分就好了. 反思:刚转C++,不会用scanf读入实数.(scanf("%lf",&y)) //By BLADEVIL #inclu ...

  4. Python 模块搜索路径 -- (转)

    最近在看<Python源码剖析>,对Python内部运行机制比以前了解的更深入了,感觉自己有机会也可以做个小型的动态脚本语言了,呵呵,当然是吹牛了.目的当然不是创造一个动态语言,目的只有一 ...

  5. Kendo Grid:将Edit button 移到grid view 得顶部

    因为kendo grid 得toolbar 里不包括Edit button,所以我们要先用template 创建一个自定义得edit button,然后再对这个button实现edit 功能. < ...

  6. 【转】bmp文件格式详解

    先区分几个概念:16色和16位色一样吗? 不一样! 颜色位数,即是用多少位字节表示的值,每一位可以表示0和1两值.通常图片的颜色深度,简称色深,就是用位数来表示的,所以,我通常会看到8位色,16位色, ...

  7. xctf一道反序列化题

    题目地址:http://120.24.86.145:8006/test1/ 右键get源码: <?php $user = $_GET["txt"]; $file = $_GE ...

  8. python中的binascii模块

    binascii模块拿来干嘛的? 答:进制转换xxoo #!/usr/bin/env python # encoding:utf-8 # by i3ekr import binascii s = &q ...

  9. 增大dma的分配

    前言 项目中需要通过驱动与fpga通讯,获取fpga往内存里写的数据.因为数据量比较大,需要驱动分配600多M的内存给fpga来写数据,且因为是与fpga通讯,需要连续的内存,还得是uncached的 ...

  10. fbx sdk

    autodesk fbx review autodesk fbx review http://www.greenxf.com/soft/169025.html autodesk fbx review( ...