1. 程式人生 > 實用技巧 >小明的噴漆計劃

小明的噴漆計劃

想了20min然後寫了10min qwq

直接把思考過程掛上來了,應該能看懂吧/wq

(刪去了大部分錯誤的過程,然後才發現正確的就這麼點/kk

然而又沒能一次過。查了很久發現是第三層迴圈那裡把 i 打成了 1 。果然又是低階錯誤嗚嗚嗚

#include<bits/stdc++.h>
using namespace std;
int n,f[101][101];
char s[101];
int main()
{
    while(scanf("%s",s+1)!=EOF)
    {
        n=strlen(s+1);
        for(int i=1;i<=n;i++)
        {
            
for(int j=1;j<=n;j++) { f[i][j]=2e9; } } for(int i=1;i<=n;i++) f[i][i]=1;//長度為1的區間值為1 for(int l=2;l<=n;l++) { for(int i=1;i<=n-l+1;i++) { int j=i+l-1; for(int k=i;k<j;k++)//
emmm就是這裡第一次的時候打錯了( { f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]); } if(s[i]==s[j]) f[i][j]--;//如果兩端是一樣的那就可以少塗一次 } } cout<<f[1][n]<<endl; } return 0; }