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();
	}
}
相关推荐
森林古猿15 小时前
论区间dp:常用模型(附极角排序教程)
c++·学习·算法·排序算法·动态规划·几何学
花火|5 小时前
算法训练营day46 647. 回文子串、516.最长回文子序列、动态规划总结篇
算法·动态规划
啊阿狸不会拉杆1 天前
《算法导论》第 15 章 - 动态规划
数据结构·c++·算法·排序算法·动态规划·代理模式
GG不是gg4 天前
动态规划进阶:转移方程优化技巧全解
动态规划
范特西_4 天前
不同的子序列-二维动态规划
算法·动态规划
花开富贵ii4 天前
代码随想录算法训练营第三十八天、三十九天|动态规划part11、12
java·数据结构·算法·leetcode·动态规划
发发发发8885 天前
leetcode 674.最长连续递增序列
java·数据结构·算法·leetcode·动态规划·最长连续递增序列
是店小二呀6 天前
【动态规划 | 01背包】动态规划经典:01背包问题详解
算法·动态规划
shenghaide_jiahu8 天前
数学建模——递归和动态规划
算法·数学建模·动态规划
凯子坚持 c8 天前
动态规划专题:详解二维费用背包问题——以“一和零”与“盈利计划”为例
算法·动态规划