1022. 宠物小精灵之收服

思路

双层dp

代码

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

const int N = 1010, mod = 1e9 + 7;

int n, m, k, x, y, z, ans, t;
int w[N], f[N][N];

void solve()
{
	cin >> n >> m >> k;
	
	for (int i = 1; i <= k; i ++ )
	{
		cin >> x >> y;
		for (int j = n; j >= x; j -- )
		{
			for (int l = m - 1; l >= y; l -- )
			{
				f[j][l] = max(f[j][l], f[j - x][l - y] + 1);
			}
		}
	}
	
	cout << f[n][m - 1] << " ";
	
	ans = m - 1;
	
	while (ans > 0 && f[n][ans - 1] == f[n][m - 1]) ans --;
	
	cout << m - ans << "\n";
}

signed main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int T = 1;
//	cin >> T;
	while (T -- )
	{
		solve();
	}
}
相关推荐
鹿角片ljp31 分钟前
LeetCode 300. 最长递增子序列|从 DP O (n²) 到贪心 + 二分 O (n log n)
算法·动态规划
2601_9561219712 小时前
背包基础篇(01、完全、分组、多重、混合)
c++·算法·动态规划
evans在进步2 天前
LeetCode 64:最小路径和——Java 原地动态规划详解
java·leetcode·动态规划
傅科摆 _ py4 天前
动态规划复习
算法·动态规划
evans在进步4 天前
LeetCode 1143:最长公共子序列——Java 二维动态规划详解
java·leetcode·动态规划
_Narcissus_5 天前
动态规划初探(含完整代码实现)
c语言·数据结构·c++·算法·动态规划·背包问题·最短路径
.格子衫.6 天前
032动态规划之区间DP——算法备赛
算法·动态规划
evans在进步6 天前
LeetCode 62:不同路径——Java 二维动态规划详解
java·leetcode·动态规划
我变成萤火虫6 天前
河南萌新联赛2026第(四)场:南阳理工学院
数据结构·c++·算法·贪心算法·stl·动态规划