P1958 上学路线
题目链接:P1958 上学路线 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <iostream>
using namespace std;
int mapp[20][20], dp[20][20];
int main() {
int a, b, n, x, y;
cin >> a >> b >> n;
for (int i = 0; i < n; i++) {
cin >> x >> y;
mapp[x][y] = 1;
}
dp[1][1] = 1;
dp[1][2] = 1;
dp[2][1] = 1;
for (int i = 1; i <= a; i++) {
for (int j = 1; j <= b; j++) {
if (i == 1 && j == 1) {
continue;
}
if (mapp[i][j]) {
dp[i][j] = 0;
} else {
dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
}
}
}
cout << dp[a][b];
return 0;
}
P1359 租用游艇
题目链接:P1359 租用游艇 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int r[210][210], dp[210];
int main() {
int n;
cin >> n;
for (int i = 1; i < n; i++) {
for (int j = i + 1; j <= n; j++) {
cin >> r[i][j];
}
}
for (int i = 1; i <= n; i++) {
dp[i] = r[1][i];
}
for (int i = 2; i <= n; i++) {
for (int j = 1; j < i; j++) {
dp[i] = min(dp[i], dp[j] + r[j][i]);
}
}
cout << dp[n];
return 0;
}
P1244 [NOI2000] 青蛙过河
题目链接:P1244 [NOI2000] 青蛙过河 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <iostream>
using namespace std;
int main() {
int h, k;
cin >> h >> k;
cout << (k + 1)*(1 << h);
return 0;
}
P1130 红牌
题目链接:P1130 红牌 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include <iostream>
#include <algorithm>
using namespace std;
int dp[2010][2010], a[2010][2010];
int main() {
int n, m;
cin >> n >> m;
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
scanf("%d", &a[j][i]);
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if (j == 1) {
dp[i][j] = min(dp[i - 1][j], dp[i - 1][m]) + a[i][j];
} else {
dp[i][j] = min(dp[i - 1][j - 1], dp[i - 1][j]) + a[i][j];
}
}
}
int ans = (1 << 30);
for (int i = 1; i <= m; i++) {
ans = min(ans, dp[n][i]);
}
cout << ans;
return 0;
}
P1734 最大约数和
题目链接:P1734 最大约数和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
01背包:s是背包容量,下标i、j是物品重量,a[i]是物品价值。
筛法预处理。
先遍历物品再遍历背包容量。
#include <iostream>
#include <algorithm>
using namespace std;
int a[1010], dp[1010];
int main() {
int s