• 第二周 递归:1.SIMPLE PREFIX COMPRESSION


    总时间限制:
    2000ms
    内存限制:
    65536kB
    描述
    Many databases store the data in the character fields (and especially indices) using prefix compression. This technique compresses a sequence of strings A1, ..., ANby the following method: if there are strings Ai = ai,1ai,2...ai,pand Ai + 1= ai+1,1ai+1,2...ai+1,q
    such that for some j <= min(p, q) ai,1= ai+1,1, ai,2= ai+1,2, ... ai,j= ai+1,j, then the second string is stored as [j]ai+1,j+1ai+1,j+2... ai+1,q, where [j] is a single character with code j.

    If j = 0, that is, strings do not have any common prefix, then the second string is prefixed with zero byte, and so the total length actually increases.


    Constraints
    1 <= N <= 10000, 1 <= length(Ai) <= 255.
    输入
    First line of input contains integer number N, with following N lines containing strings A1 ... AN
    输出
    Output must contain a single integer -- minimal total length of compressed strings.
    样例输入
    3
    abc
    atest
    atext
    
    样例输出
    11
     1 #include <iostream>
     2 #include <cstring>
     3 #include <cstdio>
     4 using namespace std;
     5 char s[10005][300];
     6 int main(int argc,const char *argv[])
     7 {
     8     int n = 0;
     9     int tep = 0;
    10     scanf("%d", &n);
    11     for(int i = 0; i < n ; i++)
    12     {
    13         scanf("%s", s[i]);
    14     }
    15     int sum =(int)strlen(s[0]);
    16     for(int i = 1; i < n; i++)
    17     {
    18         for(int j = 0; j < strlen(s[i]) && j < strlen(s[i - 1]); j++)
    19         {
    20             if(s[i][j] == s[i - 1][j]) tep++;
    21             else {sum =sum + (int)strlen(s[i]) - tep + 1; tep = 0; break;}
    22         }
    23         if(tep) {sum =sum + (int)strlen(s[i]) - tep + 1; tep = 0;}
    24     }
    25     printf("%d\n", sum);
    26 } 
  • 相关阅读:
    【02】SASS与SCSS
    【02】sass更新的方法
    10.19 dig:域名查询工具
    10.7 netstat:查看网络状态
    10.6 ip:网络配置工具
    S11 Linux系统管理命令
    11.19 rpm:RPM包管理器
    11.20 yum:自动化RPM包管理工具
    11.2 uptime:显示系统的运行时间及负载
    11.3 free:查看系统内存信息
  • 原文地址:https://www.cnblogs.com/Konayuki2015/p/4514235.html
Copyright © 2020-2023  润新知