P4170 [CQOI2007]涂色 题解
link
由数据范围易知,本题为区间 DP。
设状态
则有转移方程:
上区间 DP 模板
#include <bits/stdc++.h>
using namespace std;
// 0. Enough array size? Enough array size? Enough array size? Integer overflow?
// 1. Think TWICE, Code ONCE!
// Are there any counterexamples to your algo?
// 2. Be careful about the BOUNDARIES!
// N=1? P=1? Something about 0?
// 3. Do not make STUPID MISTAKES!
// Time complexity? Memory usage? Precision error?
#define debug(args...) fprintf(stderr, ##args)
#define gc getchar
using ll = long long;
const ll inf = 1e18;
const int N = 57;
int n, f[N][N];
char s[N];
int main() {
scanf("%s", s + 1);
n = strlen(s + 1);
memset(f, 0x3f, sizeof f);
for (int i = 1; i <= n; ++i) f[i][i] = 1;
for (int len = 1; len < n; ++len)
for (int l = 1, r = l + len; r <= n; ++l, ++r)
for (int k = l; k < r; ++k) f[l][r] = min(f[l][r], f[l][k] + f[k + 1][r]);
printf("%d", f[1][n]);
return 0;
}
结果
显然,我们刚才没有考虑特殊情况
特殊情况
易知当输入的字符串转移时若
此时便不必对
状态转移方程变为:
至此,本题就可以正常的通过了
code
#include <bits/stdc++.h>
using namespace std;
// 0. Enough array size? Enough array size? Enough array size? Integer overflow?
// 1. Think TWICE, Code ONCE!
// Are there any counterexamples to your algo?
// 2. Be careful about the BOUNDARIES!
// N=1? P=1? Something about 0?
// 3. Do not make STUPID MISTAKES!
// Time complexity? Memory usage? Precision error?
#define debug(args...) fprintf(stderr, ##args)
#define gc getchar
using ll = long long;
const ll inf = 1e18;
const int N = 57;
int n, f[N][N];
char s[N];
int main() {
scanf("%s", s + 1);
n = strlen(s + 1);
memset(f, 0x3f, sizeof f);
for (int i = 1; i <= n; ++i) f[i][i] = 1;
for (int len = 1; len < n; ++len)
for (int l = 1, r = l + len; r <= n; ++l, ++r)
if (s[l] == s[r]) f[l][r] = min(f[l][r - 1], f[l + 1][r]);
else for (int k = l; k < r; ++k) f[l][r] = min(f[l][r], f[l][k] + f[k + 1][r]);
printf("%d", f[1][n]);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)