码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 4972 A simple dynamic programming problem (转化 乱搞 思维题) 2014多校10

时间:2014-08-21 22:32:34      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   for   ar   

题目链接

题意:给定一个数组记录两队之间分差,只记分差,不记谁高谁低,问最终有多少种比分的可能性

分析:

类似cf的题目,比赛的时候都没想出来,简直笨到极点。。。。。

bubuko.com,布布扣

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cstdlib>
 5 #include <cmath>
 6 #include <vector>
 7 #include <algorithm>
 8 #define LL __int64
 9 const int maxn = 100000+10;
10 using namespace std;
11 int a[maxn];
12 
13 int main()
14 {
15     int i, t, n, ca = 1, ans, f;
16     scanf("%d", &t);
17     while(t--)
18     {
19         ans = 0; f = 0;
20         scanf("%d", &n);
21         for(i = 1; i <= n; i++)
22         {
23             scanf("%d", &a[i]);
24             if(i>=2)
25             {
26                if(a[i-1]==1 && a[i]==2)
27                ans ++;
28                if(a[i-1]==2 && a[i]==1)
29                ans ++;
30                if(a[i-1]==a[i] && a[i]!=1) //这两种都是不符合规则的
31                f = 1;
32                if(abs(a[i]-a[i-1])>3)
33                f = 1;
34             }
35         }
36         if(f)
37         printf("Case #%d: 0\n", ca++);  //不存在的情况
38         else if(a[n]==0)
39         printf("Case #%d: %d\n", ca++, ans+1);  //最后分差为0,结果少了一半
40         else
41         printf("Case #%d: %d\n", ca++, 2*ans+2);
42     }
43     return 0;
44 }

 

hdu 4972 A simple dynamic programming problem (转化 乱搞 思维题) 2014多校10,布布扣,bubuko.com

hdu 4972 A simple dynamic programming problem (转化 乱搞 思维题) 2014多校10

标签:style   blog   http   color   os   io   for   ar   

原文地址:http://www.cnblogs.com/bfshm/p/3928152.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!