uva10602 - Editor Nottoobad

来源:互联网 发布:java 线程间通信 编辑:程序博客网 时间:2024/05/22 15:40

题意:
一台声控机子,有两条命令:— “repeat the last word”, “delete the last symbol”.给你一些单词,让你用合理运用这两条命令,最少的敲击键盘打出这些单词。
思路:
很简单的一道贪心,排序+比较即可。
代码如下:

#include <iostream>#include <cstdio>#include <cstring>#include <string>#include  <algorithm>using namespace std;const int N = 105;int n;string str[N];int main() {    int cas;    scanf("%d", &cas);    while (cas--) {        scanf("%d", &n);        for (int i = 0; i < n; i++)            cin >> str[i];        sort(str, str + n);        int cnt = str[0].size();        for (int i = 1; i < n; i++) {            int len = str[i].size();            int j = 0;            while (j < len&& (str[i][j]==str[i - 1][j]))                j++;            cnt += len - j;        }        printf("%d\n", cnt);        for (int i = 0; i < n; i++)            cout<< str[i]<<endl;    }    return 0;}
0 0
原创粉丝点击