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

HDU 1422 重温世界杯

时间:2014-07-24 22:07:12      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   art   for   

题目中说只需按照所给顺序,不论起点,输出能连续旅游的最多的城市

就是不论起点这句,我就卡住了。。

 

看了别人的题解,循环个2n-1次便是把所有的起点都考虑进去了。

更详细的解释在代码的注释里。

bubuko.com,布布扣
 1 //#define LOCAL
 2 #include <iostream>
 3 #include <cstdio>
 4 #include <cstring>
 5 using namespace std;
 6 
 7 const int maxn = 100000 + 10;
 8 int city[maxn];
 9 
10 int main(void)
11 {
12     #ifdef LOCAL
13         freopen("1422in.txt", "r", stdin);
14     #endif
15 
16     int i, n, a, b, cnt, Max, sum;
17     while(scanf("%d", &n) == 1)
18     {
19         for(i = 0; i < n; ++i)
20         {
21             scanf("%d%d", &a ,&b);
22             city[i] = a - b;
23         }
24         sum = cnt = 0;
25         Max = -1;
26         for(i = 0; i < n*2-1; ++i)
27         {
28             sum += city[i%n];
29             if(sum >= 0)
30             {
31                 ++cnt;
32                 if(Max < cnt)
33                     Max = cnt;    //更新Max的值 
34                 if(Max == n)    //最多把n个城市旅游个遍 
35                     break;
36             }
37             else
38                 cnt = sum = 0;        //生活费不够了只能将所游览的城市的个数
39                                     //和总生活费归为零 
40         }
41         printf("%d\n", Max);
42     }
43     return 0;
44 }
代码君

HDU 1422 重温世界杯,布布扣,bubuko.com

HDU 1422 重温世界杯

标签:style   blog   http   color   os   io   art   for   

原文地址:http://www.cnblogs.com/AOQNRMGYXLMV/p/3866167.html

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