zoukankan      html  css  js  c++  java
  • P2697 宝石串

    题目描述

    有一种宝石串,由绿宝石和红宝石串成,仅当绿宝石和红宝石数目相同的时候,宝石串才最为稳定,不易断裂。安安想知道从给定的宝石串中,可以截取一段最长的稳定的宝石串,有多少颗宝石组成。请你帮助他。

    绿宝石用‘G’表示,红宝石用‘R'表示。

    输入输出格式

    输入格式:

     

    一行由G和R组成的字符串

     

    输出格式:

     

    最长的稳定的宝石串有多少颗宝石组成

    输入输出样例

    输入样例#1: 复制
    GRGGRG
    输出样例#1: 复制
    4

    说明

    RGGR为答案。

    宝石数<=1000000

     

    这个题,刚开始胡乱写,

    输出g和r出现次数较少的次数再除以2,

    就能拿70分哦!

    amazing~

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<algorithm>
     5 #include<cstring>
     6 using namespace std;
     7 
     8 char c[1000002]; 
     9 int a,b;
    10 
    11 int main()
    12 {
    13     cin>>c;
    14     int l=strlen(c);
    15     for(int i=0;i<l;++i)
    16     {
    17         if(c[i]=='G') a++;
    18         else b++;
    19     }
    20     int c=min(a,b);
    21     printf("%d",c*2);
    22     return 0;
    23 }
    70分乱搞代码

    正解思路:

    把一种颜色的值定为1,另一种定为-1,用f数组记录前缀和,当出现两个相同的前缀和时,就证明找到了一组两种宝石相等的策略,我们就更新maxn数组进行比较。break的作用很大,不可或缺,虽然这个题好像没问题,但是自己手打的坑点就会严重超时。

     

    ac代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<algorithm>
     5 #include<cstring>
     6 using namespace std;
     7 
     8 char c[1000002]; 
     9 int f[1000002],n,tot,sum,maxn;
    10 
    11 int main()
    12 {
    13     cin>>c;
    14     int l=strlen(c);
    15     for(int i=0;i<l;++i)
    16     {
    17         if(c[i]=='G') 
    18             f[i+1]=f[i]+1;
    19         else f[i+1]=f[i]-1;
    20     }
    21     for(int i=0;i<=l/2;++i)
    22     {
    23         for(int j=l;j>=i;--j)
    24         {
    25             if(f[j]-f[i]==0)
    26             {
    27                 maxn=max(maxn,j-i);
    28                 break;
    29             }
    30         }        
    31     }
    32     printf("%d",maxn);
    33     return 0;
    34 } 

    如果你不开心,那我就把右边这个帅傻子分享给你吧,
    你看,他这么好看,跟个zz一样看着你,你还伤心吗?
    真的!这照片盯上他五秒钟就想笑了。
    一切都会过去的。
    时间时间会给你答案2333
  • 相关阅读:
    面向对象3
    面向对象1
    面向对象2
    javascript的dom操作部分
    网页javascript部分
    网页css样式表部分
    网页HTML部分
    特殊集合和结构体
    集合
    数组 -自动遍历数组-冒泡排序
  • 原文地址:https://www.cnblogs.com/Mary-Sue/p/9302064.html
Copyright © 2011-2022 走看看