zoukankan      html  css  js  c++  java
  • Light OJ 1044 Palindrome Partitioning

    http://www.lightoj.com/volume_showproblem.php?problem=1044

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 using namespace std;
     5 #define N 1005
     6 struct op{
     7     int a,b,len;
     8 }mes[N*N];
     9 int dp[N],ct,n;
    10 char s[N];
    11 bool map[N][N];
    12 void init()
    13 {
    14     memset(map,0,sizeof(map));
    15     n=strlen(s+1);
    16     for(int i=1;i<=n;i++){
    17         map[i][i]=1;
    18         mes[++ct].a=i;
    19         mes[ct].b=i;
    20         mes[ct].len=1;
    21     }
    22     if(n>1){
    23         for(int i=1;i<n;i++)
    24             if(s[i]==s[i+1]){
    25                 map[i][i+1]=1;
    26                 mes[++ct].a=i;
    27                 mes[ct].b=i+1;
    28                 mes[ct].len=2;
    29             }
    30     }
    31     for(int len=3;len<=n;len++)
    32     for(int i=1;i<=n-len+1;i++)
    33     if(s[i]==s[i+len-1]&&map[i+1][i+len-2]){
    34         map[i][i+len-1]=1;
    35         mes[++ct].a=i;
    36         mes[ct].b=i+len-1;
    37         mes[ct].len=len;
    38     }    
    39 }
    40 bool cmp(struct op aa,struct op bb)
    41 {
    42     return aa.b<bb.b;
    43 }
    44 int main()
    45 {
    46     int t,cas=1;
    47     scanf("%d",&t);
    48     while(t--){
    49         ct=0;
    50         scanf("%s",s+1);
    51         init();
    52         sort(mes+1,mes+ct+1,cmp);
    53         memset(dp,0x3f3f3f,sizeof(dp));
    54         dp[0]=0;
    55         for(int i=1;i<=ct;i++)
    56             dp[mes[i].b]=min(dp[mes[i].b],dp[mes[i].b-mes[i].len]+1);
    57         printf("Case %d: %d
    ",cas++,dp[n]);
    58     }
    59     return 0;
    60 }
    AC Code
  • 相关阅读:
    jvm内存模型学习
    sparkstreaming容错
    yum命里详解
    rpm包的安装及卸载
    git命令记录
    ElaticSearch基本查询
    入门elaticsearch
    Java网络编程学习(一)
    JAVA多线程之生产消费模型
    Java线程同步详解
  • 原文地址:https://www.cnblogs.com/kim888168/p/3306952.html
Copyright © 2011-2022 走看看