TP地址


题意:

思路:

因为这样状态表示能对,所以应该这样状态表示

细节在注释中:
Code:Code:Code:

#include<bits/stdc++.h>
#include<unordered_map>
#define mem(a,b) memset(a,b,sizeof a)
#define cinios (ios::sync_with_stdio(false),cin.tie(0),cout.tie(0))
#define debug(x) cout<<"target is "<<x<<endl
#define forr(a,b,c) for(int a=b;a<=c;a++)
#define all(a) a.begin(),a.end()
#define oper(a) (operator<(const a& ee)const)
#define endl "\n"
using namespace std;typedef long long ll;
typedef pair<int, int> PII;const int N = 4010, M = 110, MM = 110;
int INF = 0x3f3f3f3f, mod = 10;
ll LNF = 0x3f3f3f3f3f3f3f3f;
int n, m, k, c;
int f[N], g[N], a[N];void solve() {cin >> n >> m;forr(i, 1, n)cin >> a[i];f[0] = 1;// f 的状态就是标准的01背包,选前 i 个物品,体积为 j 的方案数//最后维护出 选前 n 个物品,体积为 j 的方案数forr(i, 1, n) {for (int j = m; j >= a[i]; j--) {f[j] += f[j - a[i]];f[j] %= mod;}}g[0] = 1;// g 的状态定义为,选前 n 个物品不选第 i 个物品,体积为 j 的方案数// //发现可以这样转移  g[j] = f[j] - g[j - a[i]]//含义:(选前 n 个物品不选第 i 个物品,体积为 j 的方案数) 由 (选前 n 个物品,体积为 j 的方案数) 减去 (选前 n 个物品不选第 i 个物品,体积为 j - a[i](该物品体积) 的方案数)// //为什么可以这样转移?反过来推回去或许更好理解//(选前 n 个物品不选第 i 个物品,体积为 j - a[i](该物品体积) 的方案)每个添上一个物品 a[i],就等于 (选前 n 个物品 一定选第 i 个物品,体积为 j 的方案数)//总方案 (选前 n 个物品,体积为 j 的方案数)减去这个方案,就是我们要求的 g[j] 的状态表示了//也可以发现这个转移公式跟完全背包类似,顺序转移forr(i, 1, n) {for (int j = 0; j <= m; j++) {if (j < a[i])g[j] = f[j];else g[j] = (f[j] - g[j - a[i]] + 10) % mod;//注意减法运算取模中的负数问题g[j] %= mod;}for (int j = 1; j <= m; j++)cout << g[j];cout << endl;}}int main() {cinios;int T = 1;while (T--)solve();return 0;
}
/*
*/

牛客动态规划习题:Min酱要旅行(背包变种)相关推荐

  1. 牛客网oi测试赛E旅行青蛙【LIS二分】

    链接:https://www.nowcoder.com/acm/contest/181/E 来源:牛客网 题目描述 一只青蛙出去旅游,因为中国有一句古话说的好:"由简入奢易,由奢入俭难&qu ...

  2. 牛客——动态规划专项

    NC1 连续子数组最大和(ACM版本) 连续子数组最大和(ACM版本)_牛客题霸_牛客网[牛客题霸]收集各企业高频校招笔面试题目,配有官方题解,在线进行百度阿里腾讯网易等互联网名企笔试面试模拟考试练习 ...

  3. 牛客竞赛习题:这个合理吗? [C语言解法]

    链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: % ...

  4. 牛客网习题之牛妹的蛋糕

    牛妹的蛋糕 简单分析题目: 已知第n天的时候还剩一个蛋糕,假设第n-1天 也就是前一天有x个蛋糕 那么 x-x*(1/3)-1=1 右边的1是后一天的数目 所以x=2*3/2=3 所以递推得到假设算出 ...

  5. 牛客动态规划基础题单 1002 舔狗舔到最后一无所有

    递推动规 题目链接:舔狗舔到最后一无所有 题目大意:有三种外卖可以任意点,但要求不能连续三天点同一种外卖,问点n天外卖有多少种可行的方案. dp数组: f[i]:第i天买1号外卖的方案数,由于买2,3 ...

  6. 牛客:【2021秋季算法入门班第七章习题:动态规划1】部分题解:方块与收纳盒、舔狗舔到最后一无所有、可爱の星空、[NOIP1999]拦截导弹

    题单链接:牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)  P1001 方块与收纳盒 传送门:1001-方块与收纳盒_2021秋季 ...

  7. 牛客题单_动态规划课程状压dp习题

    牛客题单_动态规划课程状压dp习题 文章目录 牛客题单_动态规划课程状压dp习题 NC14732 锁 NC15034 德玛西亚万岁 NC16418 宝藏 NC17061 多彩的树 NC17890 方格 ...

  8. 牛客竞赛语法入门班-循环结构习题代码(1)

    链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 目录 1001 上下金字塔 1002 数字三角形 1003 字符金字塔 1004 涂小天与他的画 1005 箭形图案 1006 牛牛学数列 ...

  9. 牛客竞赛每日俩题 - 动态规划1

    目录 DP入门(存储之前状态以简化) DP解决最短路问题 DP入门(存储之前状态以简化) 拆分词句_牛客题霸_牛客网 思路: 方法:动态规划 状态:         子状态:前1 , 2 , 3 , ...

最新文章

  1. mqtt 负载均衡_EMQ百万级MQTT消息服务(分布式集群)
  2. minicom使用总结
  3. 从思维导图学习操作系统(二)
  4. Ubuntu下安装Gerrit
  5. 下半年登场!小米MIX 4概念图曝光:有望首发屏下摄像头
  6. Spring Framework标记库初学指南
  7. Redisson分布式锁使用采坑记
  8. Spark2.1.0模型设计与基本架构(下)
  9. matlab高等数学实验答案,MATLAB高等数学实验-(第2版)
  10. JAVA基本数据类型几个字节_java基本数据类型各占多少字节?
  11. SPSS入门教程—相关性分析使用方法
  12. C#二进制方式(binary、varbinary、blob、longblog等)读写mysql
  13. logit回归模型假设_LOGISTIC回归分析
  14. 你熟悉的新华书店,已经变样了 | 数字化案例
  15. UWB简介及其定位方法
  16. html页面内容上下左右居中,HTML元素水平垂直居中实现方式(每天一个知识点)...
  17. 智能暖风机——FAQ
  18. 调用微信接口上传图片总结
  19. js 将图片置灰_让网页图片变灰色的三种方法
  20. 达梦数据库SQL学习

热门文章

  1. C语言二级指针 (清晰易懂 图解概述)
  2. 服务器响应到客户端中文乱码的解决方式
  3. 第7章第33节:五图排版:错落有致的波浪式排版 [PowerPoint精美幻灯片实战教程]
  4. 50万VPN登录凭证遭泄露,中国占11.89%
  5. android白屏优化方案,优化Android App启动白屏
  6. 前端白屏问题_首页白屏的引发的思考(一)
  7. WKWebView白屏问题
  8. 墨干V1.1.0: 新一代结构化编辑器的雏形
  9. 二维数组与稀疏矩阵的转换
  10. 国外甲醇汽油的应用概况