
dp
文章平均质量分 59
running_in_dark
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
bzoj4102(基于图的神dp)
为了庆祝贝茜的生日,FJ给她吃草的自由. N块草地,标号1到N(1 算出贝茜能够获得的最大能量. 首先以每个点为起点跑一次BFS,求出任意两点间的最短距离dis[i][j]。再将所有点按权值从小到大排序,按这个顺序DP。状态转移方程为:f[j]=max{f[k]+a[j]-dis[k][j]},(1≤k≤j-1)。最后在f数组中求最大值,即为答案。 其实因为题原创 2016-11-13 10:02:02 · 439 阅读 · 0 评论 -
hdu3853(概率与期望dp入门)
有一个人被困在一个 R*C(2 令:f[i][j] 表示从 (i,j) 这个点到出口 (R,C) 花费的魔法值的期望。 那么,我们有: f[i][j] = p_loop[i][j]*f[i][j] + p_left[i][j]*f[i][j+1] + p_down[i][j]*f[i+1][j]+2 移项可得: (1-p_loop原创 2016-11-22 19:26:17 · 348 阅读 · 0 评论 -
bzoj1076(概率与期望dp入门)
题目大意:给定k次弹出宝物的机会,每次随机弹出n种宝物的机会,如果吃过这种宝物的所有前提宝物就可以吃这种宝物,求最优策略的期望得分 看到数据范围果断状压DP- - 不看数据范围害死人- - 至于吃还是不吃 这是个问题 对于这种最优策略的期望DP 我们一般都是从后往前推 枚举每次挑战 枚举此时的状态 枚举宝物是哪种 如果当前的宝物可以吃 就在吃与不吃的后继状态中选择最大值加到当前状态上原创 2016-11-22 20:43:38 · 1265 阅读 · 0 评论 -
bzoj4578(斜率优化)
方法麻烦了,简单方法见https://oi.men.ci/sdoi2016-journey/ #include #include #include #include #include #include using namespace std; typedef long long ll; const ll inf=1e15; ll dp[3005][3005],sum[3005]; int原创 2016-11-27 16:06:18 · 503 阅读 · 0 评论 -
bzoj1246(树状数组)
树状数组的灵活运用,维护的是最大值,因为整个数组就是一个前缀最大值,所以可以用实现,求一个前缀最大值,和更新pos之后的最大值。 很好的运用,多回顾思考 #include #include #include #include #include using namespace std; const int N=20005; int n; int pos[N][6]; int t[N*5原创 2017-02-04 16:25:45 · 701 阅读 · 0 评论 -
bzoj1833数位dp(据说是模板)
woc,恶心了我半天,对于1--9还好处理,但是0这个东西总是要特殊处理,很烦人。 最后想到0也一样处理,然后减去不合法的就是前导0的数量就好 据说是模板,我都费这么大劲,好弱啊 #include #include #include #include #include using namespace std; typedef long long ll; ll f[15],A,B,g[原创 2017-02-06 08:37:43 · 658 阅读 · 0 评论