• UVA 11584 Partitioning by Palindromes (字符串区间dp)


    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2631

    题目大意:

    给一个字符串, 要求把它分割成若干个子串,使得每个子串都是回文串。问最少可以分割成多少个。

    分析:

    f[i]表示以i结尾的串最少可以分割的串数。

    f[i] = min{ f[j]+1, 串[j,i]是回文串&&1<=j<=i }

     1 #include <iostream>
     2 #include <algorithm>
     3 #include <cstring>
     4 #include <cstdio>
     5 #include <vector>
     6 #include <cstdlib>
     7 #include <iomanip>
     8 #include <cmath>
     9 #include <ctime>
    10 #include <map>
    11 #include <set>
    12 #include <queue>
    13 using namespace std;
    14 #define lowbit(x) (x&(-x))
    15 #define max(x,y) (x>y?x:y)
    16 #define min(x,y) (x<y?x:y)
    17 #define MAX 100000000000000000
    18 #define MOD 1000000007
    19 #define pi acos(-1.0)
    20 #define ei exp(1)
    21 #define PI 3.141592653589793238462
    22 #define INF 0x3f3f3f3f3f
    23 #define mem(a) (memset(a,0,sizeof(a)))
    24 typedef long long ll;
    25 ll gcd(ll a,ll b){
    26     return b?gcd(b,a%b):a;
    27 }
    28 bool cmp(int x,int y)
    29 {
    30     return x>y;
    31 }
    32 const int N=10005;
    33 const int mod=1e9+7;
    34 char str[N];
    35 int f[N];
    36 bool isPalind(int l, int r){
    37     while(l<r){
    38         if(str[l]!=str[r]) return false;
    39         ++l;
    40         --r;
    41     }
    42     return true;
    43 }
    44 int main(){
    45     int t;
    46     scanf("%d",&t);
    47     while(t--){
    48         scanf("%s",str+1);
    49         int len=strlen(str+1);
    50         mem(f);
    51         for(int i=1;i<=len;i++){
    52             f[i]=i+1;
    53             for(int j=1;j<=i;j++)
    54                 if(isPalind(j,i))
    55                 f[i]=min(f[i],f[j-1]+1);
    56         }
    57         printf("%d
    ",f[len]);
    58     }
    59     return 0;
    60 }
  • 相关阅读:
    hadoop集群配置和测试
    ubuntu 12.04安装jdk
    springboot集成mybatis
    redis连接数据库
    生产随机数
    关于字符串统计次数
    闲的无聊写了一个房租的后台
    简单的死锁
    java集合类总结(转)
    mybatis框架的搭建
  • 原文地址:https://www.cnblogs.com/wydxry/p/7280710.html
Copyright © 2020-2023  润新知