当前位置: 首页 > news >正文

背包问题(完全背包)

前言:背包问题,一定要抽象出背包问题


题目地址

在这里插入图片描述

#include<bits/stdc++.h>using i64 = long long;
using u64 = unsigned long long;void solve() {i64 n, m, t;std::cin >> n >> m >> t;std::vector<i64> a(m + 1);for (i64 i = 1; i <= m; i++) {std::cin >> a[i];}t -= n;if (t < 0) {std::cout << 0 << '\n';return;}std::sort(a.begin() + 1, a.end());std::set<int> st;for (int i = 1; i < m; i++) {st.insert(2 * (a[i + 1] - a[i]));}std::vector<bool> dp(t + 1, 0);dp[0] = 1;for (auto it : st) {for (int i = it; i <= t; i++) {dp[i] = dp[i] | dp[i - it];}}for (int i = t; i >= 0; i--) {if (dp[i]) {std::cout << i + n << '\n';return;}}
}signed main() {std::ios::sync_with_stdio(0);std::cout.tie(0);std::cin.tie(0);i64 t = 1; std::cin >> t;while (t--) {solve();}
}

http://www.mrgr.cn/news/9213.html

相关文章:

  • Java Web —— 第七天(Mybatis案例 部门管理)
  • EXCEL 分段排序--Excel难题#86
  • 不良贷款只有“贷款逾期”?你知道还有“呆滞”、“呆账”贷款吗?
  • 数学基础 -- 微积分之线性化
  • docker升级docker pull mysql:5.7.37异常
  • 【鼠鼠学AI代码合集#3】简单的数据操作 (pytorch)
  • BCEWithLogitsLoss
  • 大模型在应用开发安全左移实践
  • C#中的压缩与解压缩:掌握内置功能的艺术
  • Matlab自学笔记三十四:表table的排序、查找、提取、删除、计算、与结构数组的转换
  • CSS\JS实现页面背景气泡logo上浮效果
  • ubuntu20.04源码编译安装qemu(qemu8.2)
  • 01 BlockChain--
  • ReactRouter6快速入门教程
  • webdriver 反爬虫 (selenium反爬虫) 绕过
  • 手机谷歌浏览器怎么用
  • 【HuggingFace Transformers】BertSdpaSelfAttention源码解析
  • C语言占领游戏
  • 无人机PX4飞控 | 电源系统详解与相关代码
  • C语言文件迷宫