旅游城市数量最大化 01背包问题

题目描述

求一个人去旅游能到达的最多的城市。

输入格式

第一行为输入的样例组数T TT。

接着为n nn,m mm(n nn为这个人旅行的总天数,m mm为计划旅行的总城市数)。

接下来一行为一个整数数组d [ i ] d[i]d[i], 每一位依次表示游览每个城市所需的天数。

输出格式

输出一个整数,表示能到达的最多的城市数量。

输入样例

1

5 3

2 1 3

1

2

3

输出样例

2

代码:

#include <iostream>

#include <vector>

#include <map>

#include <algorithm>

#include <cstring>

#include <cmath>

#define MX 100000005

using namespace std;

//背包问题

int t,n,m,d[MX];

int dp[MX];

int main() {

cin>>t;

cin>>n>>m;

for(int i = 1;i <= m;i++)

{

cin>>d[i];

}

dp[0] = 0;

for(int i = 1;i <= m;i++)

{

for(int j = n;j >= d[i];j--)

{

dp[j] = max(dp[j],dp[j-d[i]] + 1);

}

}

cout<<dp[n]<<endl;

return 0;

}

相关推荐
旖-旎2 分钟前
哈希表(存在重复元素||)(4)
数据结构·c++·算法·leetcode·哈希算法·散列表
Run_Teenage5 分钟前
Linux:认识信号,理解信号的产生和处理
linux·运维·算法
John.Lewis7 分钟前
C++进阶(8)智能指针
开发语言·c++·笔记
被摘下的星星11 分钟前
数据结构中逻辑结构和存储结构对应有哪些
数据结构
無限進步D20 分钟前
蓝桥杯赛前刷题
c++·算法·蓝桥杯·竞赛
小贾要学习20 分钟前
【Linux】应用层自定义协议与序列化
linux·服务器·c++·json
CoderCodingNo22 分钟前
【GESP】C++二级真题 luogu-B4497, [GESP202603 二级] 数数
开发语言·c++·算法
磊 子25 分钟前
八大排序之冒泡排序+选择排序
数据结构·算法·排序算法
We་ct26 分钟前
LeetCode 50. Pow(x, n):从暴力法到快速幂的优化之路
开发语言·前端·javascript·算法·leetcode·typescript·
潇洒畅想30 分钟前
1.1 从∑到∫:用循环理解求和与累积
java·数据结构·python·算法