1 编辑距离 1207 √

https://www.luogu.com.cn/problem/P2758

  1. 字符的输入是覆盖不是追加,在输入前追加空格会被cin吃掉。所以应该在输入后a=" "+a;
  2. len需要-1,因为多了一个空格
  3. i=1到i<=len
  4. 注意还有相等的时候的判断
dp[i][j] = min(dp[i - 1][j], min(dp[i][j - 1], dp[i - 1][j - 1])) + 1;
		//为啥插入是i j-1:因为我们凭空变出来一个与j匹配。那a的前i个还没匹配
		//所以应该是前i个到j
点击查看代码
#include<bits/stdc++.h>
using namespace std;
string a = "";
string b = "";
const int maxn = 2010;
int dp[maxn][maxn];
int main()
{
	
	
	cin >> a >> b;
	//字符的输入是覆盖不是追加,在输入前追加空格会被cin吃掉。
	a = " "+a;
	b = " "+b;
	int alen = a.length() - 1;
	int blen = b.length() - 1;


	for (int i = 1;i <= alen;i++)dp[i][0] = i;
	for (int i = 1;i <= blen;i++)dp[0][i] = i;
	for (int i = 1;i <= alen;i++)
	{
		for (int j = 1;j <= blen;j++)
		{
			if (a[i] == b[j])
				dp[i][j] = dp[i - 1][j - 1];
			else
			dp[i][j] = min(dp[i - 1][j], min(dp[i][j - 1], dp[i - 1][j - 1])) + 1;
				//为啥插入是i j-1:因为我们凭空变出来一个与j匹配。那a的前i个还没匹配
				//所以应该是前i个到j
		}
	}
	cout << dp[alen][blen] << endl;
}

2 捡水果/石子合并 1207√

https://www.luogu.com.cn/problem/P1090

点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e4 + 10;;
int n;
int a[maxn];
int ans = 0;
int main()
{
	cin >> n;

	priority_queue<int, vector<int>, greater<int>> q;
	for (int i = 0;i < n;i++)
	{
		cin >> a[i];
		q.push(a[i]);
	}
	while (q.size() > 1)
	{
		int a = q.top();
		q.pop();
		int b = q.top();
		q.pop();
		ans += a + b;
		int s = a + b;
		q.push(s);

	}
	cout << ans << endl;

}

3 01背包

4 数字三角形 1207 √

https://oj.sdutacm.cn/onlinejudge3/contests/4286/problems/C

  1. 是从倒数第二行开始合并的,注意我们相当于在覆盖。
  2. 注意边界
	for (int i = n-1;i >0;i--)
	{
		
		for (int j = 1;j <= i;j++)
点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int maxn = 110;
int dp[maxn][maxn];
int main()
{
	int n;
	cin >> n;
	for (int i = 1;i <= n;i++)
	{
		for (int j = 1;j <= i;j++)
			cin >> dp[i][j];
	}
	
	for (int i = n-1;i >0;i--)
	{
		
		for (int j = 1;j <= i;j++)
		{
			dp[i][j]+= max(dp[i + 1][j], dp[i + 1][j + 1]);
		}
	}
	cout << dp[1][1] << endl;
}

5 找零问题

posted on 2025-12-05 21:41  Hoshino1  阅读(3)  评论(0)    收藏  举报