#include<bits/stdc++.h>using namespacestd;intT,N,M;//T未来的天数 N纪念品数量 M金币数量intprice[105][105];//存放第i天 第j个纪念品的价格intdp[105][10005];//表示前i种纪念币,在总金币数量为j时,可以赚到的最大金币数量intmain(){cin>>T>>N>>M;//T未来的天数 N纪念品数量 M金币数量fo...
解法一、标准二维dp方程 #include<bits/stdc++.h>usingnamespacestd;intT,N,M;intp[105][105];// p[t][i]: 第t天第i个纪念品的价格intdp[105][10005];// dp[i][j]: 前i种纪念币,总可用金币数量为j时能赚到的最大金币// 故本题输出内容为: T-1轮后,dp[N][M] + 前一天结束时的金币数量...
[CSP-J2019] 纪念品 知识点:完全背包 注意到,对于某件商品,我们可以当天卖出当天买回,于是我们在一天中对于某件商品,可以有以下的策略: 1、不买 2、买完后第二天卖掉 3、买完后过几天卖掉 对于策略3,我们可以将其转化为:当天买;然后第二天卖掉,第二天买回;然后第
&price[j][i]);//读入每种商品每天的价格for(intk=1;k<t;k++){memset(f,0,sizeoff);//每轮开始前都要初始化为0for(inti=1;i<=n;i++)for(intj=price[i][
//45pts,暴力分 #include <bits/stdc++.h> using namespace std; const int N = 110, M = 1e7 + 10; int a[N][N]; int T, n, m; int f[N]; int zhuan; void dfs(int qian, int js, int j, int t) //j天买入,t天卖出 { if (js > zhuan) zhuan = js; for (int i = 1;...
for(int j=0; j<n; j++) cin>>a[i][j]; t--;//最后一天直接卖掉 所以不算 我就是这里傻到然后数组越界(讲道理我置零了)(算了无所谓了 for(int i=0; i<t; i++) {//遍历每一天 memset(val,0,sizeof(val)); for(int j=0; j<n; j++)//遍历每一个商品 ...
接下来 T 行,每行包含 N 个正整数,相邻两数之间以一个空格分隔。第 i 行的N 个正整数分别为 Pi,1, Pi,2, …… , Pi,N,其中 Pi,j 表示第 i 天第 j 种纪念品的价格。 输出格式 输出仅一行,包含一个正整数,表示小伟在超能力消失后最多能拥有的金币数量。
55015 - [CSP-J2019]纪念品(souvenir) 解题思路 先考虑n=1的情况:相邻两天的价格差当作一个物,当然,price=a[i],value=a[i+1]-a[i]。 dp[i]表示花费i金币的不包括本金的最大收益。 同时选物品i和i+1收益就是a[i+2]-a[i],每一天可以买卖多个,所以是完全背包。 注意:每天结束之后更新m,收益也...
3530: 【2019CSP-J】纪念品时间限制: 1 Sec 内存限制: 128 MB提交: 11 解决: 36[提交][状态][命题人:xuqi] 题目描述 小伟突然获得一种超能力,他知道未来 T 天 N 种纪念品每天的价格。某个纪念品的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量。 每天,小伟可以进行...
接下来 T 行,每行包含 N 个正整数,相邻两数之间以一个空格分隔。第 ii 行的 NN 个正整数分别为 Pi,1,Pi,2,……,Pi,3,其中 Pi,j 表示第 i 天第 j 种纪念品的价格。 Output 输出仅一行,包含一个正整数,表示小伟在超能力消失后最多能拥有的金币数量。