dp
zerollt
noi接近退役?
展开
-
[NOIP2014] 飞扬的小鸟 【背包】
题目很明显的背包问题,向上飞可以点无限次,所以是完全背包,向下掉只可能掉一次,所以是01背包。又因为不能在掉落之后再上升,所以要先算完全背包我开始用的是递推,75分(TLE5个点…),对于每一列能够到达的点,推出下一行所能到达的点(所以就重复计算了很多次,完全没有用到背包的思想)接着开始考虑背包,对于一列i的纵坐标j,f[i][j]表示到达这个点需要点击的最小次数,那么f[i][j]=min{f[i原创 2017-12-22 18:35:30 · 318 阅读 · 0 评论 -
[NOIP2007] 矩阵取数游戏 【记忆化搜索+高精】
题目其实感觉这题重点不是dp而是高精因为只能取队首尾的数字,所以用dp[i][j]表示取剩下的i~j的数所能得到的最大值dp[i][j]=max(dp[i+1][j]+2^(m-j+i)*num[i],dp[i][j-1]+2^(m-j+i)*num[j]);代码#include<iostream> #include<cstdio> #include<algorithm> #include<cstd原创 2017-12-24 12:06:54 · 237 阅读 · 0 评论 -
NOIP2015 过河 【递推(dp)+离散化】
题目描述 题目状态转移方程f[i]=min{f[i-j]+map[i]|s<=j<=t};f[i]表示到达距离i会踩到最少的石子,map[i]表示此处是否有石子因为石子个数比较少,而独木桥的长度比较长,所以要稍微离散化一下, 又因为1~10的最小公倍数为2520,如果从i出发,如果i到i+2520中间没有石子的话f[i~i+2520]的值都是相同的,就可以把这一段路去掉代码#include<io原创 2017-12-19 14:12:40 · 235 阅读 · 0 评论