zoukankan      html  css  js  c++  java
  • hdu 4972 A simple dynamic programming problem (每次记录两队得分差值求结果数)

    因为是每次投篮后记录两队得分的差值,所以两个队伍的总分是不断增加的,可以发现只有差值由1-->2或者2-->1的情况才可能产生产生两种总分和的结果如 0:2可以变成2:3和1:2  其他的情况都只能是一种 

    郜大可的代码:

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<iostream>
     4 #include<algorithm>
     5 using namespace std;
     6 #define LL __int64
     7 #define Ma 100010
     8 int num[Ma];
     9 int main(){
    10     int t,cas=1;
    11     scanf("%d",&t);
    12     while(t--){
    13         int n,ans=2;
    14         scanf("%d",&n);
    15         for(int i=0;i<n;i++)
    16             scanf("%d",&num[i]);
    17         if(num[0]>3||num[0]==0){
    18             ans=0;
    19             goto sss;
    20         }
    21         for(int i=1;i<n;i++){
    22             int k=abs(num[i]-num[i-1]);
    23             if(k>3||(num[i]!=1&&num[i-1]==num[i])){
    24                 ans=0;
    25                 goto sss;
    26             }
    27             if((num[i-1]==1&&num[i]==2)||(num[i-1]==2&&num[i]==1)){
    28                 ans+=2;
    29             }
    30         }
    31         if(num[n-1]==0) ans/=2;
    32         sss:printf("Case #%d: %d
    ",cas++,ans);
    33     }
    34     return 0;
    35 }
    36 
    37 
    38 [ Copy to Clipboard ]    [ Save to File]
  • 相关阅读:
    从O(n^3) 到 O(n)求最大连续和
    冲刺博客NO.6
    冲刺博客NO.5
    冲刺博客NO.4
    冲刺博客NO.3
    冲刺博客NO.2
    冲刺博客NO.1
    结对开发:四则运算(网页版)
    课堂作业3
    软件工程概论02~ 四则运算
  • 原文地址:https://www.cnblogs.com/assult/p/3930232.html
Copyright © 2011-2022 走看看