zoukankan      html  css  js  c++  java
  • HDU 4972

    题意:
      给出一场篮球赛每次得分后的分差,求最终这场比赛的比分有多少种
    分析:
      因为知道了最终的分差,只需要考虑最终的得分之和有多少种,就能确定比分的种数
      只有分差 1-2 或 2-1 能使总分的增量为 1 或 3. 其他情况只有一种增量
      若 1-2 或 2-1 有 cnt 种,则最后比分之和有 cnt+1 种
      若分差为 0 则没有先后之分,否则答案乘 2
      

      考虑错误输入:
        相邻分数之差大于3
        相邻分数相等却不等于1

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cmath>
     4 using namespace std;
     5 const int N = 100005;
     6 int t, n;
     7 int a[N];
     8 int solve()
     9 {
    10     int cnt = 1;
    11     for (int i = 1; i <= n; i++)
    12     {
    13         if (abs(a[i]-a[i-1]) > 3) return 0;
    14         if (a[i] == a[i-1] && a[i] != 1) return 0;
    15         if (a[i] == 1 && a[i-1] == 2 || a[i] == 2 && a[i-1] == 1) cnt++;
    16     }
    17     if (a[n] == 0) return cnt;
    18     else return cnt*2;
    19 }
    20 int main()
    21 {
    22     scanf("%d", &t);
    23     for (int tt = 1; tt <= t; tt++)
    24     {
    25         scanf("%d", &n);
    26         a[0] = 0;
    27         for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
    28         printf("Case #%d: %d
    ", tt, solve());
    29     }
    30 } 
    我自倾杯,君且随意
  • 相关阅读:
    CSP-S2020总结
    题解-P6687 论如何玩转 Excel 表格
    题解-UVA12995 【Farey Sequence】
    题解-P4159 [SCOI2009] 【迷路】
    题解-SP2916【GSS5
    102. 二叉树的层序遍历
    力扣 160 相交链表 快慢指针 双指针
    3. 无重复字符的最长子串 滑动窗口
    最大连续1的个数 III
    B树和B+树
  • 原文地址:https://www.cnblogs.com/nicetomeetu/p/7154480.html
Copyright © 2011-2022 走看看