1 条题解

  • 0
    @ 2024-9-3 18:35:48
    #include <bits/stdc++.h>
    using namespace std;
    int f[505][505], n;
    char s[505];
    int main() {
    	cin >> n >> s+1;
    	for (int l = 1; l <= n; l++) {
    		for (int i = 1; i+l-1 <= n; i++) {
    			int j = i + l - 1;
    			if (i == j) f[i][j] = 1;
    			else {
    				f[i][j] = f[i+1][j] + 1;
    				for (int k = i+1; k <= j; k++)
    					if (s[i] == s[k])
    						f[i][j] = min(f[i][j], f[i+1][k] + f[k+1][j]);
    			}
    		}
    	}
    	cout << f[1][n] << endl;
    	return 0;
    }
    
    • 1

    信息

    ID
    15
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    (无)
    递交数
    10
    已通过
    3
    上传者