uva - 10602 - Editor Nottoobad(贪心)
2014-03-24 23:33
399 查看
题意:给你几个单词,第一个单词必须手动打印,后边的单词可以通过“重复最后一个单词”“删除最后的字母”(当然也可以打印)转换得到,求最小的操作次数。
方法:字典序排序+枚举。输出具有一定的迷惑性,千万要注意它说的如果输出有多种,任意输出一种就行。
AC代码:
最近A的第一道uva啊希望能来点状态,一天A1~2道。
方法:字典序排序+枚举。输出具有一定的迷惑性,千万要注意它说的如果输出有多种,任意输出一种就行。
AC代码:
#include <iostream> #include <iomanip> #include <string> #include <cstring> #include <cstdio> #include <queue> #include <stack> #include <algorithm> #include <cmath> #include <ctime> using namespace std; const int maxn = 100+10; void Solve(string *word, int N, int ans) { int i = 0, j = 0; sort(word, word+N); ans = word[0].size(); for (i = 1; i < N; i++) { if (word[i][0] != word[i-1][0]) ans += word[i].size(); else { for (j = 0; j < word[i].size() && j < word[i-1].size(); j++) { if (word[i][j] != word[i-1][j]) break; } ans += word[i].size() - j; } } cout << ans << endl; for (i = 0; i < N; i++) cout << word[i] << endl; } int main() { #ifdef Local freopen("a.in", "r", stdin); #endif int T = 0; cin >> T; while (T--) { int N = 0, i = 0, ans = 0; string word[maxn]; cin >> N; for (i = 0; i < N; i++) cin >> word[i]; Solve(word, N, ans); } return 0; }
最近A的第一道uva啊希望能来点状态,一天A1~2道。
相关文章推荐
- 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
- UVa10602 - Editor Nottoobad
- EDITOR NOTTOOBAD uva+贪心
- uva 10602 Editor Nottoobad
- uva10602 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(排序)
- UVaOJ10602 - Editor Nottoobad