【题意】给定s个股票和d天,给出价格矩阵s*d,每天可以买入或卖出整数倍股票,初始资金m,求最大利益。m<=200000,s<=50,d<=10。

【算法】完全背包

【题解】关键在于转化:第一天买入-第三天卖出,相当于,第一天买入-第二天卖出-第二天买入-第三天卖出。那么买卖股票就变成相邻两天的事情了。

对于每一天,就是完全背包,总重量为资金,重量为当天价格,价值为第二天价格-当天价格

f[i][j]表示前i个股票使用资金j能获得的最大收益。

f[i][j]=f[i-1][j-A[i]]+A[i+1]-A[i]。

每天最终得到的最大收益就是当天买入第二天卖出后的净收益,加入资金中。如此做d-1次完全背包,得到答案。

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=;
int n,m,d,f[maxn],a[][];
int main(){
scanf("%d%d%d",&n,&d,&m);
for(int i=;i<=n;i++)for(int j=;j<=d;j++)scanf("%d",&a[j][i]);
for(int k=;k<d;k++){
memset(f,,sizeof(f));
for(int i=;i<=n;i++)
for(int j=a[k][i];j<=m;j++)
f[j]=max(f[j],f[j-a[k][i]]+a[k+][i]-a[k][i]);
m+=f[m];
}
printf("%d",m);
return ;
}

最新文章

  1. iPhone/iPad/Android UI尺寸规范 UI尺寸规范,UI图标尺寸,UI界面尺寸,iPhone6尺寸,iPhone6 Plus尺寸,安卓尺寸,iOS尺寸
  2. HTML5+CSS3实现图片可倾斜摆放的动画相册效果
  3. 基本排序算法——冒泡排序java实现
  4. 关于SSIS中解密FTP字符串的方法
  5. webbrowser 禁用 alert
  6. libevent (三) 事件注册与循环监听
  7. javaweb学习之Servlet开发(二)
  8. Repeater 时间格式化
  9. HBase(一): c#访问hbase组件开发
  10. Linux的内存回收和交换
  11. 【阿里云产品评测】小站长眼中的巅峰云PK
  12. NIO学习:使用Channel、Buffer写入文件
  13. HDU 4432 Sum of divisors (进制模拟)
  14. Qt 读写XML文件
  15. [Hadoop] - Win7下提交job到集群上去
  16. win10 uwp 简单MasterDetail
  17. onScrollChanged()
  18. 在使用mysql8.0的时候遇到的密码链接问题
  19. 洛谷P4175 网络管理
  20. AVERAGE和averageif函数

热门文章

  1. Alpha冲刺——第一天
  2. k邻近算法理解及代码实现
  3. iOS- 无处不在,详解iOS集成第三方登录(SSO授权登录&lt;无需密码&gt;)
  4. 初学LINUX版本的选择
  5. ORA-00933 SQL命令未正确结束 INSERT INTO ... SELECT
  6. SonarQube安装
  7. 数据包从tcp-&gt;ip发出去
  8. mysql通过binlog恢复数据
  9. 进程&amp;线程间通信方式总结
  10. nginx 反向代理 ,入门