首页 > 代码库 > HDU 4891 The Great Pan(模拟)
HDU 4891 The Great Pan(模拟)
HDU 4891 The Great Pan
题目链接
题意:给定一个文本,如果是{}之间,有几个|就有几个表示方式,如果是$$之间,有连续几个空格,就有空格+1总表示方式,问总的表示方式
思路:模拟,遇到{}就乘上|个数+1,遇到$$就乘上每段空格的个数+1,注意过程中爆long long的,所以达到上限就不再乘了
代码:
#include <cstdio> #include <cstring> typedef long long ll; int cnt, n; ll ans; char c; int main() { while (~scanf("%d%*c", &n)) { cnt = 0; ans = 1; while (cnt < n) { c = getchar(); while (c == '\n') { cnt++; if (cnt == n) break; c = getchar(); } if (c == '{') { ll tmp = 1; while (c != '}') { c = getchar(); while (c == '\n') { cnt++; c = getchar(); } if (c == '|') tmp++; } if (ans <= 100000) ans *= tmp; } else if (c == '$') { ll tmp = 1; c = getchar(); while (c == '\n') { cnt++; c = getchar(); } while (c != '$') { if (c == ' ') { tmp++; } else { if (ans <= 100000) ans *= tmp; tmp = 1; } c = getchar(); while (c == '\n') { cnt++; c = getchar(); } } if (ans <= 100000) ans *= tmp; } } if (ans <= 100000) printf("%lld\n", ans); else printf("doge\n"); } return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。