首页 > 代码库 > 【HDOJ】4972 A simple dynamic programming problem
【HDOJ】4972 A simple dynamic programming problem
水题。
1 #include <cstdio> 2 #include <cstring> 3 #include <cstdlib> 4 5 int abs(int x) { 6 return x<0 ? -x:x; 7 } 8 9 int main() {10 int t, n;11 int cur, past;12 __int64 ans;13 bool flag;14 15 #ifndef ONLINE_JUDGE16 freopen("data.in", "r", stdin);17 #endif18 19 scanf("%d", &t);20 for (int i=1; i<=t; ++i) {21 scanf("%d", &n);22 flag = true;23 past = 0;24 ans = 1;25 while (n--) {26 scanf("%d", &cur);27 if (!flag)28 continue;29 if (abs(cur-past)>3 || (cur==past && cur!=1)) {30 flag = false;31 continue;32 }33 if (past == 0)34 ans *= 2;35 if (cur == 0)36 ans /= 2;37 if ((cur==1 && past==2) || (cur==2 && past==1))38 ans += 2;39 past = cur;40 }41 if (!flag)42 printf("Case #%d: 0\n", i);43 else44 printf("Case #%d: %I64d\n", i, ans);45 }46 47 return 0;48 }
【HDOJ】4972 A simple dynamic programming problem
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。