2018 ACM-ICPC World Finals
我重写行不? Comma Sprinkler 签到题,类似于BFS用两个队列维护每种单词前/后是否有逗号向前/后扩展,需要注意如果有句号挡着是不能扩展过去的,不过样例有。 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int maxn = 1e6 + 10 ; 4 map< string , vector< int >> M; 5 bool pre[maxn], suc[maxn]; 6 bool st[maxn], ed[maxn]; 7 queue< string > QP, QS; 8 set < string > SP, SS; 9 string str[maxn]; 10 11 int main() { 12 string s; 13 getline(cin, s); 14 int l = s.length(), p = 1 ; 15 st[p] = true ; 16 for ( int i = 0 ; i < l; ++ i) { 17 if (s[i] == ' , ' ) { 18 suc[p] = pre[p + 1 ] = true ; 19 ++p, ++ i; 20 } 21 else if (s[i] == ' . ' ) { 22 ed[p] = st[p + 1 ] = true