分析:看起来有点像最大权闭合图,然而复杂度太高。。。 正解是dp,设dp[i]为考虑前i条路的最大收益,则dp[i]=max{dp[j] - cost[j+1][i] + earn[j+1][i]},0<=j<=i-1,earn[j+1][i]表示在[j+1,i]之间的比赛,是个O(n^2)的dp. ...
分类:
其他好文 时间:
2017-11-24 20:19:13
阅读次数:
168
n<=100000天,一开始有s块钱,每天股票A价格ai,B价格bi,每天可以做的事情:卖出股票;按A:B=RTi的比例买入股票。问最后的最大收益。股票可以为浮点数,答案保留三位。 用脚指头想想就知道是:某一天全部买进来,某一天全部卖出去,没有说买一半卖一半的。 那就可以dp了,f(i)表示前i天最 ...
分类:
其他好文 时间:
2017-11-23 08:15:37
阅读次数:
128
问题等价于树形依赖背包,允许一条链每个点各免费一次。 设$f[i][j]$表示按DFS序考虑到$i$,体积为$j$的最大收益。 先放入不能免费的物品,等遍历完儿子后再放入必选的物品,那么$i$到根路径上所有点都只算了不能免费的部分。 然后将DFS序翻转,设$h[i][j]$表示按DFS序考虑到$i$ ...
分类:
移动开发 时间:
2017-11-16 11:52:24
阅读次数:
196
ACboy needs your help HDU - 1712 ans[i][j]表示前i门课共花j时间最大收益。对于第i门课,可以花k(0<=k<=j)时间,那么之前i-1门课共花j-k时间。 错误记录: 21行一个0写成1 错误记录: 21行一个0写成1 ...
分类:
其他好文 时间:
2017-11-09 19:43:46
阅读次数:
137
先把主件拆开。例如两个附件的物品,拆成只买主件、主+附1、主+附2、主+附1+附2这四种对于这个物品的选法。 然后跑类似普通背包的,ans[i][j]表示前i个物品用j的钱的最大收益。如果当前物品为附件则ans[i]直接从ans[i-1]复制,直接忽略当前物品。否则枚举当前物品的所有选法,ans[i ...
分类:
其他好文 时间:
2017-11-08 16:05:27
阅读次数:
207
Marriage Ceremonies LightOJ - 1011 常规状压dp。popcount(S)表示S集合中元素数量。ans[S]表示S中的女性与前popcount(S)个男性结婚的最大收益。 那么,$ans[S]=max\{ans[S-p]+a[popcount(S)][p]\}$ 老代 ...
分类:
其他好文 时间:
2017-10-29 20:21:59
阅读次数:
138
题目大意: ? 给定vi,wi,每次可以在wi中选择一个子段[l,r]满足:? |wi-wi+1|=1 (l<=i<r)? 2wi-wi-1-wi+1>=0 (l<i<r)? 选择后获得vr-l+1的收益并把这个子段删除,可以不删完,求最大收益。? n<=400 Examples input 30 ...
分类:
其他好文 时间:
2017-10-27 11:45:24
阅读次数:
166
题目大意: 有n个软件,每个软件依赖于其它至多一个软件,每个软件有一个代价w和收益v,问在总代价不超过m时,最大收益为多少。 思路: 树形DP。 f[i][j]表示第i个点,代价为j的最大收益。 设当前结点为x,一个子结点是y,其中原来已经付出的代价为i,在y处新付出的代价为j,则状态转移方程为: ...
分类:
其他好文 时间:
2017-10-24 11:50:57
阅读次数:
159
有一个整数串,有两个人轮流取,每次可以取走一个前缀或后缀。两人都足够聪明,且都会使自己收益最大。求取完后先手收益。 import numpy as np from random import shuffle n = 40 li = list(range(1, n+1)) shuffle(li) sl ...
分类:
其他好文 时间:
2017-10-17 12:46:30
阅读次数:
172
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1572 题意: 有n个工作,每个工作有一个截止日期dead[i]和收益pay[i]。 完成一项工作需要花费1的时间。 问你最大收益。 题解: 贪心。 先将n个工作按dead从小到大排序。 开一 ...
分类:
其他好文 时间:
2017-10-03 14:55:08
阅读次数:
199