[USACO 1.1.4]破碎的项链

地址:http://hustoj.sinaapp.com/problem.php?id=1819

 

方法:枚举断点,注意全是w的情况

 

 1 #include <stdio.h>
 2 
 3 int nl[701];//necklace
 4 int n;//珠子个数
 5 
 6 int main()
 7 {
 8     int f1,f2,l1,l2,i=0;
 9     int ca=0,cb=0,ans=0;
10     char in[701];
11     scanf("%d",&n);
12     scanf("%s",in);
13     for(i=0;i<n;i++)
14     {
15         if('b'==in[i])
16         {
17             nl[i]=1;
18             nl[i+n]=1;
19         }
20         else if('w'==in[i])
21         {
22             nl[i]=10;
23             nl[i+n]=10;
24         }
25         else if('r'==in[i])
26         {
27             nl[i]=-1;
28             nl[i+n]=-1;
29         }
30     }
31     for(i=0;i<n;i++)
32     {
33         f1=i;
34         f2=nl[f1];
35         l1=f1+n-1;
36         l2=nl[l1];
37         ca=0;
38         cb=0;
39         while(nl[f1]==f2 || nl[f1]==10 || f2==10)
40         {
41             if(10==f2) f2=nl[f1];
42             ca++;
43             f1++;
44             if(f1-i==n) break;
45         }
46         while(l1>=f1 && (nl[l1]==l2 || nl[l1]==10 || l2==10))
47         {
48             if(10==l2) l2=nl[l1];
49             cb++;
50             l1--;
51             if(i+n-1-l1==n) break;
52         }
53         ans=(ca+cb)>ans?(ca+cb):ans;
54     }
55     printf("%d\n",ans);
56     return 0;
57 }

 

转载于:https://www.cnblogs.com/tjsuhst/archive/2013/01/17/2863610.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值