zoukankan      html  css  js  c++  java
  • 2014多校第十场1002 || HDU 4972 A simple dynamic programming problem

    题目链接

    题意 : 每次无论哪个队投进一个篮球,就记下现在两队比分的差值,问你最后的结果有多少种情况。

    思路 : 该题实在是不好理解,最后的结果有多少种情况就是说不管中间过程怎么来的,只要最后结果不一样的情况。因为会有不合法数据,类似于2 2 2 或者是1 5 9 23这种数据,非法数据就是0种情况,但是1 1 1 这种情况是可以的,你赢了1分的球,我下次赢了2分的球,差值还是1 ,由此也推断,整个数列中会产生不同情况的地方只有1 2 或者2 1 这些情况,你赢了1分球,然后你又赢了1分球,差值为2 ,与你赢了1分球我赢了3分球差值还为2 如果最后结果不一样 的话就是两种情况。

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <math.h>
     4 #include <iostream>
     5 #define LL long long
     6 
     7 using namespace std ;
     8 int a[100010] ;
     9 
    10 int main()
    11 {
    12     int T,n,casee = 1 ;
    13     scanf("%d",&T) ;
    14     while(T--)
    15     {
    16         scanf("%d",&n) ;
    17         for(int i = 1 ; i <= n ; i++)
    18         {
    19             scanf("%d",&a[i]) ;
    20         }
    21         LL ans = 1 ;
    22         bool flag = true ;
    23         for(int i = 2 ; i <= n ; i++)
    24         {
    25             if(fabs(a[i]-a[i-1]) > 3)
    26             {
    27                 flag = false ;
    28                 break ;
    29             }
    30             if(a[i] == a[i-1] && a[i] != 1)
    31             {
    32                 flag = false ;
    33                 break ;
    34             }
    35             if(a[i] == 1 && a[i-1] == 2) ans ++ ;
    36             if(a[i] == 2 && a[i-1] == 1) ans ++ ;
    37         }
    38         printf("Case #%d: ",casee++) ;
    39         if(!flag)
    40         {
    41             printf("0
    ") ;
    42             continue;
    43         }
    44         else if(a[n] == 0)
    45         {
    46             printf("%I64d
    ",ans) ;
    47             continue ;
    48         }
    49         printf("%I64d
    ",ans*2) ;
    50     }
    51     return 0 ;
    52 }
    View Code
  • 相关阅读:
    HTTP && 缓存
    querySelector $() getElementBy区别
    Canvas 雾玻璃
    Github page
    Browserify
    关于布局和结构
    how to install flash
    kali update can’t found win7 loader
    arp spoofing
    How To Set Up Port Forwarding in Linux
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3928580.html
Copyright © 2011-2022 走看看