hdu 4972 A simple dynamic programming problem 2014多校十
2014-08-21 17:04
309 查看
题目链接:hdu 4972
给定一个数组记录两队之间分差,只记分差,不记谁高谁低,问最终有多少种比分的可能性
有可能给的数据构不成合法数据,分差过大,以及两次分差相等且该分差不为1都是非法情况
然后每次2->1,1->2都可能使最终结果增加,如果最终分差不为0,情况数*2
给定一个数组记录两队之间分差,只记分差,不记谁高谁低,问最终有多少种比分的可能性
有可能给的数据构不成合法数据,分差过大,以及两次分差相等且该分差不为1都是非法情况
然后每次2->1,1->2都可能使最终结果增加,如果最终分差不为0,情况数*2
/****************************************************** * File Name: 1002.cpp * Author: kojimai * Creater Time:2014年08月21日 星期四 13时00分27秒 ******************************************************/ #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<iostream> using namespace std; #define FFF 100005 int a[FFF]; int dp[FFF]; int main() { int keng,Cas=1; scanf("%d",&keng); while(keng--) { int n; a[0]=0; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } if(n==0) { printf("Case #%d: ",Cas++); cout<<1<<endl; continue; } long long ans=1; bool flag=true; if(a[1]>3) flag=false; for(int i=2;i<=n&&flag;i++) { if(a[i]-a[i-1]>3||a[i-1]-a[i]>3||(a[i]==a[i-1]&&a[i]!=1)) flag=false; if(a[i]==2&&a[i-1]==1) { ans++; } else if(a[i]==1&&a[i-1]==2) { ans++; } } printf("Case #%d: ",Cas++); if(!flag) cout<<0<<endl; else if(a !=0) cout<<ans*2<<endl; else cout<<ans<<endl; } return 0; }
相关文章推荐
- hdu 4972 A simple dynamic programming problem (转化 乱搞 思维题) 2014多校10
- 2014多校第十场1002 || HDU 4972 A simple dynamic programming problem
- hdu 4972 A simple dynamic programming problem(高效)
- hdu 4947 A simple dynamic programming problem(2014 Multi-University Training Contest 10)
- HDU 4972 A simple dynamic programming problem(数学思维题)
- HDU - 4972 A simple dynamic programming problem (14多校)思维
- HDU 4972 A simple dynamic programming problem
- hdu 4972 A simple dynamic programming problem(高效)
- HDU 4972 A simple dynamic programming problem(找规律)
- hdu - 4972 - A simple dynamic programming problem(数学 + dp)
- HDU-4972-A simple dynamic programming problem
- HDU 4972 - A simple dynamic programming problem
- HDU 4972 A simple dynamic programming problem
- hdu 4972 A simple dynamic programming problem (每次记录两队得分差值求结果数)
- HDU-4972-A simple dynamic programming problem
- HDU 4972 A simple dynamic programming problem(推理)
- 【HDU】A simple dynamic programming problem
- HDOJ 4972 A simple dynamic programming problem
- 【杂题】 HDOJ 4972 A simple dynamic programming problem
- 14多校 B-A simple dynamic programming problem