在总金币数量为j时,可以赚到的最大金币数量intmain(){cin>>T>>N>>M;//T未来的天数 N纪念品数量 M金币数量for(inti=1;i<=T;i++){for(intj=1;j<=N;j++){//输入未来T天的,N种纪念币价格
//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;...
2019CSP-J组真题 3. 纪念品 题中关键句 1、“纪念品的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量”:说明同一种商品在同一天买卖的价格相同,即同一种商品在同一天内不管你买卖多少轮,总金币数量不变。 2、“任选一个纪念品,若手上有足够金币,以当日价格购买该纪念品,注意...
[CSP-J2019] 纪念品 知识点:完全背包 注意到,对于某件商品,我们可以当天卖出当天买回,于是我们在一天中对于某件商品,可以有以下的策略: 1、不买 2、买完后第二天卖掉 3、买完后过几天卖掉 对于策略3,我们可以将其转化为:当天买;然后第二天卖掉,第二天买回;然后第
小伟突然获得一种超能力,他知道未来 T 天 N 种纪念品每天的价格。某个纪念品的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量。 每天,小伟可以进行以下两种交易无限次: 1. 任选一个纪念品,若手上有足够金币,以当日价格购买该纪念品; ...
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,收益也...
小伟突然获得一种超能力,他知道未来 T 天 N 种纪念品每天的价格。某个纪念品的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量。 每天,小伟可以进行以下两种交易无限次: 1.任选一个纪念品,若手上有足够金币,以当日价格购买该纪念品; 2.卖出持有的任意一个纪念品,以当日价格...
那么怎么确定最佳策略呢——填表。每个纪念品都会覆盖到某个值下的最优解,并且可以使得后续可以直接调用其生成的最优解,最后推出m对应的生成价值。 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e4+5; int main() { ...
第一行包含三个正整数 T, N, M,相邻两数之间以一个空格分开,分别代表未来天数 T,纪念品数量 N,小伟现在拥有的金币数量 M。 接下来 T 行,每行包含 N 个正整数,相邻两数之间以一个空格分隔。第 ii 行的 NN 个正整数分别为 Pi,1,Pi,2,……,Pi,3,其中 Pi,j 表示第 i 天第 j 种纪念品的价格。
传送门 P5662 [CSP-J2019] 纪念品 首先观察题目性质 每天卖出纪念品换回的金币可以立即用于购买纪念品。 每天,小伟可以进行以下两种交易无限次。 分析 对于一组i∼j天的交易, 可以看做是, 第i天买进,第i+1天卖出。 第i+1天买进,第i+2天卖出。 ... 第j−1天买进,第j天卖出。 那么...