UVA 10602 EDITOR NOTTOOBAD
来源:互联网 发布:sql insert into 日期 编辑:程序博客网 时间:2024/06/05 03:48
#include <map>#include <set>#include <list>#include <cmath>#include<cctype>#include <ctime>#include <deque>#include <stack>#include <queue>#include <cstdio>#include <string>#include <vector>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>#define LL long long#define PI 3.1415926535897932626using namespace std;int gcd(int a, int b){return a % b == 0 ? b : gcd(b, a % b);}//这里学习了一下d_double的代码,以编号来排序生成,主要思路就是last与i的查找,每次找到以last为最大前缀的i#define MAXN 120struct node{ char input[MAXN]; int id; friend bool operator <(const node &a,const node &b) { return a.id<b.id; }}src[MAXN];int main(){ int T; scanf("%d",&T); while (T--) { int N; scanf("%d",&N); for (int i=0;i<N;i++) { scanf("%s",src[i].input); src[i].id=-1;//-1表示最开始还没有应用 } src[0].id=0; int ans=strlen(src[0].input); int leap=1,last=0;//每次为last找到最大前缀 while (leap<N) { int cnt=0,t=-1;//计数找到最大匹配, for (int i=0;i<N;i++) if (src[i].id==-1)//当前字串未运算,下面对i字串进行运算 { if (t==-1) { t=i; if (src[i].input[0]==src[last].input[0]) { for (int j=0;j<strlen(src[i].input)&&j<strlen(src[last].input);j++) { if(src[last].input[j]!=src[i].input[j]) break; else cnt++; } } } else { int tmp=0; for (int j=0;j<strlen(src[last].input) && j<strlen(src[i].input);j++) { if (src[last].input[j]!=src[i].input[j])break; else tmp++; } if (tmp>cnt) {t=i;cnt=tmp;}//最大匹配前缀 } } ans+=(strlen(src[t].input)-cnt); src[t].id=leap++; last=t; } sort(src,src+N); printf("%d\n", ans); for(int i=0; i<N; ++i) puts(src[i].input); } return 0;}
0 0
- UVa 10602 - Editor Nottoobad
- UVa 10602 - Editor Nottoobad
- uva 10602 - Editor Nottoobad
- UVA 10602 - Editor Nottoobad
- UVA 10602 - Editor Nottoobad
- uva 10602 Editor Nottoobad
- UVA 10602 EDITOR NOTTOOBAD
- UVa 10602 - Editor Nottoobad
- UVA - 10602 Editor Nottoobad
- UVA - 10602 Editor Nottoobad
- uva 10602 Editor Nottoobad
- UVA 10602 - Editor Nottoobad
- UVA - 10602 Editor Nottoobad
- uva 10602 Editor Nottoobad(排序)
- EDITOR NOTTOOBAD - UVa 10602 贪心
- UVA 10602 Editor Nottoobad(贪心)
- UVa 10602 Editor Nottoobad (等价转换思想)
- uva - 10602 - Editor Nottoobad(贪心)
- 神经网络和BP算法
- 嵌入式声卡驱动模块的编译和移植
- 适配器模式
- 有关struct的构造函数
- iptables防火墙详解及使用layer7阻止qq,酷狗,等P2P软件
- UVA 10602 EDITOR NOTTOOBAD
- 深度,广度优先算法经典图解
- leetcode 刷题-题目3: NlgN时间对单链表进行排序
- 敏捷是如何优化需求过程的
- hdu 3657 Game 最小割
- 抽象工厂模式
- delphi公用函数
- 找最大的N个数
- Ubuntu上使用Hadoop 2.x 三 编译2.2.0 64bit版本