标签:style color os io for 问题 ar line
题意:找出一共有多少中不同的问题的理解
思路:题目本身比较难读懂,但看明白之后就很简单了。其实可以先将所有字符串连接在一起,形成一个大字符串,然后再对整个字符串进行查找。
只要关心两种操作符就可以了。
1、{},只要将大括号里面的‘|‘的数量加上1,然后乘以ans
2、$$,将在内部遇到n个连续的空格就把ans乘以n + 1
最后注意ans在运算的过程中超int类型的范围
#include <iostream> #include <cstdio> #include <cstring> #include <string> #include <algorithm> using namespace std; const int MAXN = 100000; int n, cnt1, cnt2, flag; long long ans; string s, t; int main() { while (scanf("%d", &n) != EOF) { getchar(); s.clear(); for (int i = 0; i < n; i++) { getline(std::cin, t); s += t; } ans = cnt1 = flag = 1; cnt2 = 2; for (int i = 0; i < s.length(); i++) { if (s[i] == '{') flag = 0; else if (s[i] == '}') { flag = 1; ans *= cnt1; if (ans > MAXN) break; cnt1 = 1; } else if (s[i] == '$') { flag = -flag; } if (flag == 0) { if (s[i] == '|') cnt1++; } if (flag == -1) { if (s[i] == ' ' && s[i + 1] == ' ') cnt2++; else if (s[i] == ' '){ ans *= cnt2; cnt2 = 2; } if (ans > MAXN) break; } } if (ans > MAXN) printf("doge\n"); else printf("%lld\n", ans); } return 0; }
HDU4891-The Great Pan,布布扣,bubuko.com
标签:style color os io for 问题 ar line
原文地址:http://blog.csdn.net/u011345461/article/details/38276823