摘要: 题目传送门 解题思路: f[i][j]表示数i被j个数构成的方案数,然后就跟完全背包差不多了 AC代码: 1 #include<iostream> 2 #include<cstdio> 3 4 using namespace std; 5 6 int t,n = 32768,f[32800][5]; 阅读全文
posted @ 2020-02-22 23:59 Mr^Simon 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 解题思路: f[i][j]表示区间i~j可获得的最大利润,则每个区间可能从两个状态转移过来,即我上一次卖了第i-1个或第j+1个. AC代码: 1 #include<iostream> 2 #include<cstdio> 3 4 using namespace std; 5 6 int 阅读全文
posted @ 2020-02-22 23:57 Mr^Simon 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 解题思路: f[i]表示打到第i层的最小值 AC代码: 1 #include<iostream> 2 #include<cstdio> 3 4 using namespace std; 5 6 long long n,t,a[1001],sum[1001]; 7 long long f[ 阅读全文
posted @ 2020-02-22 23:54 Mr^Simon 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 解题思路: 区间DP,f[i][j]表示区间i~j可获得的最大值,因为本题的所有区间是可以直接一次性把自己全删掉的,所以所有区间初始化为被一次性删除的值,然后枚举断点,跑区间DP. AC代码: 1 #include<iostream> 2 #include<cstdio> 3 #incl 阅读全文
posted @ 2020-02-22 23:52 Mr^Simon 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 解题思路: f[i][j]表示第j天到第i个城市消耗的最小体力值,对于每种状态,我们可能从两种状态转移过来:1.我们可以选择前一天没动,即f[i][j-1]2.可以选择前一天动了,即f[i-1][j-1] 还有,第1座城市比较特殊,所以要单独处理一下. AC代码: 1 #include< 阅读全文
posted @ 2020-02-22 23:48 Mr^Simon 阅读(127) 评论(0) 推荐(0) 编辑