UVA10602

原创 2013年12月05日 20:44:12

题意:输入一些字符串,要求所需按键的次数最小

思路:先将所有字符串排序,然后再将前一个与后一个比较,找出要按键的次数,然后进行累加,刚开始WA是因为写成,计算两个字符串不同的字母,实际是要在出现第一个字符出现不同后,后面的字符全都要用按键输入了。

#include <stdio.h>
#include <string.h>
#include <algorithm>
#define N 105

using namespace std;

char s[N][N], str[N][N], ans[N];

int cmp(const void *a, const void *b) {
    return strcmp((char *)a, (char *)b);
}

int main() {
    int cas;
    scanf("%d", &cas);
    while (cas--) {
        int n, num = 0;
        scanf("%d", &n);
        for (int i = 0; i < n; i++) 
            scanf("%s", s[i]);
        
        qsort(s, n, sizeof(s[0]), cmp); 
        num = strlen(s[0]);
        int i, k;
        for (i = 1; i < n; i++) {
                for (k = 0; k < strlen(s[i]); k++) {
                     if (s[i][k] != s[i - 1][k])  
                        break; 
                }      
                num += strlen(s[i]) - k;
        }        
        printf("%d\n", num);
        for (int i = 0; i < n; i++) 
                printf("%s\n", s[i]); 
    }
    return 0;
}


相关文章推荐

UVa 10602 - Editor Nottoobad

贪心,从第一个给定的字符串开始,每次都选取与前一个字符串的前缀最大匹配的字符串为下一个字符串,以此类推。 代码如下: #include #include #include #include #...

uva 10602 Editor Nottoobad

uva 10602 Editor Nottoobad

UVa 10602 Editor Nottoobad (等价转换思想)

10602 - Editor Nottoobad Time limit: 3.000 seconds  http://uva.onlinejudge.org/index.php?option=co...

[贪心]UVA10602 Editor Nottoobad

题意:一种编辑器只能通过声音做到两种操作-“repeat the last word”, “delete the last symbol”,其他的都必须自己手动输入,问输入一些单词,最少需要手写输入多...

uva 10602 Editor Nottoobad(字符串 + 排序)

uva 10602 Editor Nottoobad Company Macrohard has released it’s new version of editor Nottooba...

uva - 10602 - Editor Nottoobad(贪心)

题意:给你几个单词,第一个单词必须手动打印,后边的单词可以通过“重复最后一个单词”“删除最后的字母”(当然也可以打印)转换得到,求最小的操作次数。...

UVaOJ10602 - Editor Nottoobad

10602 - Editor Nottoobad Time limit: 3.000 seconds Company Macrohard has released it’s new v...

机器人足球2d uva球队代码

  • 2009年12月14日 22:05
  • 2.77MB
  • 下载

uva225—Golygons(回溯法)

uva225 题意:
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UVA10602
举报原因:
原因补充:

(最多只允许输入30个字)