Codeforces 777D:Cloud of Hashtags(水题)

Posted Shadowdsp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces 777D:Cloud of Hashtags(水题)相关的知识,希望对你有一定的参考价值。

http://codeforces.com/problemset/problem/777/D

题意:给出n道字符串,删除最少的字符使得s[i] <= s[i+1]。

思路:感觉比C水好多啊,大概是题目比较难看懂吧。直接从后面往前扫,用后面的答案更新前面的答案。考虑如果后面的字符串比前面的大,那么直接保存当前的字符串,否则暴力扫一遍,前面的字符串大于后面的字符串的那一位直接跳出。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 string s[500010];
 4 string ans[500010];
 5 int main() {
 6     int n;
 7     scanf("%d", &n);
 8     for(int i = 1; i <= n; i++) cin >> s[i];
 9     ans[n] = s[n];
10     for(int i = n - 1, j; i >= 1; i--) {
11         if(ans[i+1] >= s[i]) { ans[i] = s[i]; continue; }
12 
13         int a = s[i].size(), b = ans[i+1].size();
14         int len = min(a, b);
15         for(j = 0; j < len; j++)
16             if(s[i][j] > ans[i+1][j]) break;
17         for(int k = 0; k < j; k++) ans[i] += s[i][k];
18     }
19     for(int i = 1; i <= n; i++) cout << ans[i] << endl;
20     return 0;
21 }

 

以上是关于Codeforces 777D:Cloud of Hashtags(水题)的主要内容,如果未能解决你的问题,请参考以下文章

CodeForces 625B War of the Corporations

(KMPdp)Codeforces Educational Codeforces Round 21 G-Anthem of Berland

Codeforces 85D Sum of Medians(线段树)

Codeforces 124A - The number of positions

codeforces 656 E Out of Controls Floyd

codeforces 85D. Sum of Medians