bzoj#P2470. [2010中山市选]股票投资
[2010中山市选]股票投资
题目描述
很多人都梦想成为股神,但是股票投资是需要一定基本功的。熟知股票买卖的规则就是其中一件很重要的事情。顾名思义,股票的单位是“股”;但是实际上,在公开交易市场,股票交易的单位是“手”,1手股票等于100股股票。另外,和其他商业买卖一样,股票交易是要纳税的。股票交易的税有两种,一种是交易税,一种是印花税。假设当前股价是P,你要买或者卖X手股票,那么你需要付出或者得到的钱是G=P100X。与此同时,无论买或者卖,你都必须支付交易税和印花税。印花税有一个固定税率T,例如0.001,则你所需支付的印花税为GT。交易税类似印花税,也有一个固定税率S1,但同时也有一个最低税额S2,这意味着,如果GS1<S2,则你依然需要支付S2的税款,即你需要缴纳的税款为 max(G*S1,S2)。 好了,懂得这个规则,现在你可以小试牛刀了。不过,股票市场更需要的是投资策略。问题来了,假设某个时刻T_{0},你拥有C元现金;接下来的n秒钟,T_{1},T_{2},…,T_{n},你都清楚知道某一只股票的价格P_{i}。在这n秒钟,你都可以任意买入或者卖出或者持有这只股票,当然,无论什么时候,你必须保证你的现金不能出现负数,你也不可能卖出比你持有数量更多的股票。同时T,S1,S2也是已知的。在这样的情况下,第n秒结束后,你可以拥有的现金最多会是多少?
输入格式
输入包含多组测试数据。第一行包含一个正整数T,表示测试数据数目。每组数据开头是4个实数C(0<C<=1,000,000), S1(0.0001<S1<0.01), S2(1<=S2<=100), T(0.0001<T<0.01),分别代表你T_{0}时刻开始拥有的现金,印花税率,交易税率和最低交易税额。接下来有一个整数n(0<n<=30000),代表我们知道后n秒钟的股票价格。最后是n个实数,代表接下来n秒钟每一秒股票的价格。
输出格式
对每组数据,输出一行,包含一个保留3位小数的实数,表示你能获得的最多现金。答案保证不会超过1e15。
1
5000 0.001 5 0.003
6
20 21 20 19 20 19
5332.000
提示
** ** | 操作 | 价格 | 持有股票 | 印花税 | 交易税 | 现金 |
---|---|---|---|---|---|---|
T_{0}** - **** - **** 0 **** 0 **** 0 **** 5000 ** | ||||||
**T_{0}买 20 **** 200 **** 12 **** 5 **** 983 ** | ||||||
**T_{0}卖 21 **** 0 **** 12.6 **** 5 **** 5165.4 ** | ||||||
**T_{0}持 20 **** 0 **** 0 **** 0 **** 5165.4 ** | ||||||
**T_{0}买 19 **** 200 **** 11.4 **** 5 **** 1349 ** | ||||||
**T_{0}卖 20 **** 0 **** 12 **** 5 **** 5332 ** | ||||||
**T_{0}持 19 **** 0 **** 0 **** 0 **** 5332 ** | ||||||
** 操作价格持有股票印花税交易税现金** | ||||||
T_{0}** - **** - **** 0 **** 0 **** 0 **** 5000 ** | ||||||
**T_{0}买 20 **** 200 **** 12 **** 5 **** 983 ** | ||||||
**T_{0}卖 21 **** 0 **** 12.6 **** 5 **** 5165.4 ** | ||||||
**T_{0}持 20 **** 0 **** 0 **** 0 **** 5165.4 ** | ||||||
**T_{0}买 19 **** 200 **** 11.4 **** 5 **** 1349 ** | ||||||
**T_{0}卖 20 **** 0 **** 12 **** 5 **** 5332 ** | ||||||
**T_{0}持 19 **** 0 **** 0 **** 0 **** 5332 ** |
题目来源
没有写明来源