节约每一个字节
Description
John在做一个项目,项目对存储容量有着近乎苛刻的要求,为此John需要对一些东西进行压缩存储。John的第一个问题就是一大堆的字符串,存储它们太占地方了,为此他想了一个办法:如果字符串具有相同的后缀,那么就把这么字符串的相同后缀和在一起,这样就能节约一点空间了。比如说有两个字符串分别为“Programming”和“Something”,这样它们有相同的后缀ing,这时候就能省去三个字母了。请写一个程序,计算John这样做能够省去多少个字母?
输入:
第一行是一个整数K,表示有多少个测试用例,以后每个测试用例占n+1行。每个测试用例的第一行为一个整数n(1<=n<=20),从第二行开始依次为n个字符串,字符串由英文字母组成,大小写敏感。
输出:
每行输出一个测试用例的结果。输出总共节省了多少个字母。
Sample Input
2
2
Programming
Something
3
John
AJohn
BJehn
Sample Output
3
6
#include<iostream>
using namespace std;
char str[20][1000];
int main()
{
int k;
cin>>k;
while(k--)
{
int n;
cin>>n;
int i,j,k1,k2;
for(i=0;i<n;i++)
{
scanf("%s",str[i]);
}
int sum=0,max=0,num=0;
for(i=0;i<n-1;i++)
{
max=0;
for(j=i+1;j<n;j++)
{
num=0;
k1=strlen(str[i])-1;
k2=strlen(str[j])-1;
while(k1>=0&&k2>=0)
{
if(str[i][k1--]==str[j][k2--]) { num++;}
else break;
}
if(max<num)
max=num;
}
sum+=max;
}
cout<<sum<<endl;
}
return 0;
}
分享到:
相关推荐
这个“基于C++实现的ACM竞赛常用模板”是一个集成了ACM比赛常见问题解决方案的代码库,可以帮助参赛者快速理解和解决各种竞赛题目。 首先,模板通常包括基础数据结构和算法的实现,例如: 1. **排序算法**:快速...
总的来说,《ACM ICPC程序设计与分析(C++实现)》是一本全面而深入的指南,涵盖了算法设计、C++编程和竞赛策略等多个方面。它不仅适合准备参加ACM ICPC的大学生,也对任何希望通过学习高级算法和C++编程来提升自己...
总的来说,"北大acm_p1001试题c++版"提供了一个学习和实践C++编程和算法的好机会,特别是对于那些刚开始接触ACM竞赛或C++编程的新手。通过研究已通过的代码,我们可以了解如何运用基础的编程和算法知识去解决实际...
总的来说,一个**基于C++的ACM模板**是为了提升解决问题的速度和效率,它封装了常见的数据结构、算法和输入输出操作,使得程序员能更专注于解决问题本身,而不是基础的代码构造。在实际应用中,选手可以根据自己的...
ACM模板和一些题目的代码实现c++源码.zipACM模板和一些题目的代码实现c++源码.zipACM模板和一些题目的代码实现c++源码.zipACM模板和一些题目的代码实现c++源码.zipACM模板和一些题目的代码实现c++源码.zipACM模板和...
详细讲述了acm的编程及各种算法知识,书中代码全部用c++实现,对c++泛型编程也有着极大地帮助
ACM中的常用高精度模板,内容:大数加法,大数乘小数,大数乘大数,大数除法。
算法是用来操作容器中的数据的模板函数,例如,STL用sort()来对一个vector中的数据进行排序,用find()来搜索一个list中的对象。函数本身与他们操作的数据的结构和类型无关,因此他们可以在从简单数组到高度复杂容器...
本书《手写代码必备手册(C++版)&acm;-cheat-sheet》是一本专注于C++编程语言的参考书,旨在帮助国内寻求就业机会的程序员和刚开始接触ACM算法竞赛的新手。书籍内容并不涉及难度特别高的问题,而是注重在纸上默写代码...
ACM模板和一些题目的代码实现 ACM模板和一些题目的代码实现 ACM模板和一些题目的代码实现 ACM模板和一些题目的代码实现 ACM模板和一些题目的代码实现 ACM模板和一些题目的代码实现 ACM模板和一些题目的代码实现 ACM...
“基于C++实现的ACM竞赛常用模板文件”是一个旨在帮助ACM参赛者快速掌握和应用ACM比赛中常见问题解决方案的代码库。这些模板经过精心设计,能够为参赛者提供一个清晰的框架,使他们能够在短时间内理解并解决各类算法...
**KMP算法实现模板(C++版) ACM算法** KMP(Knuth-Morris-Pratt)算法是一种在文本字符串中查找子串匹配的有效方法,尤其适用于已经预处理了模式串(子串)的匹配信息。它是由D.E. Knuth、V. Morris和J.H. Pratt...
总的来说,这个基于C++的ACM-ICPC模板是参赛者在备赛过程中必不可少的工具,它可以帮助参赛者专注于算法设计,而不需要花费过多精力在代码实现的细节上。通过学习和使用这套模板,选手可以提升自己的编程效率,提高...
《ACM竞赛常用模板——C++深度解析》 在信息技术领域,ACM国际大学生程序设计竞赛(ACM International Collegiate Programming ...每个模板背后都是一系列理论知识和实践经验的结晶,值得每一个参赛者去探索和掌握。
这是一道比较经典的剪枝题目,如果不仔细考虑到 题目特性,就不能了解到搜索的速度
【ACM】BUAA ACM选拔赛题 常规C/C++编程 【实例简介】数学题,注意LL的使用 【实例截图】 【核心代码】用C 写的 ├── Prob_e.cpp └── prob-e-游戏分组.pdf 0 directories, 2 files BUAA ACM选拔赛题 常规C/C++...
ACM的试题及其讲解,很有用的资料,鄙人搜集了很久的,向别人很难要到的...有一部份是自己总结的。
这可以通过定义一个结构体并自定义比较函数来实现。 - **定义结构体**: ```cpp struct student { int score; string name; }; ``` - **定义比较函数**: ```cpp bool score_comp(const student &a, const...
《杭电ACM解题报告(C/C++)》涵盖了从1201到1250号的所有题目,这是一份丰富的编程竞赛资源,专为参加或准备参加ACM(国际大学生程序设计竞赛,International Collegiate Programming Contest)的选手们提供。ACM...