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

Codeforces Round #545 (Div. 2)A. Sushi for Two

时间:2019-03-08 23:19:29      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:src   clu   ret   col   fine   应该   img   分析   define   

全世界最笨的人

出现了

技术图片

 

这题真的好欺骗我的感情,表面上先给我过了,让我快乐一下,背地里再把我给踢掉

TUT干嘛这么坏啊!!!!!!!!!!!!!

好吧,其实这个错误昨天晚上就反过了

但是世界上最笨的女同学她是不会改的

如果你下次还不改

那你还是世界上最笨的女同学

如果你改了

那你......

TUT...

我们来分析一下,为什么这个女同学,连A题都过不了

这题的题意很简单,就是要求长得像AAABBB的序列的最大值

我先选了一种很弱智的方法

就是,先求前面那个连续序列的长度,再求后面那个连续序列的长度 两个两个求

也没把答案存在数组里.........很傻

第二种方法

就是那个欺骗我感情的方法

#include<bits/stdc++.h>
using namespace std;
#define re register
#define sys system("pause");
inline int read(){
    re int x=0,f=1;char c=getchar();
    while(c<0||c>9){if(c==-) f=-1;c=getchar();}
    while(c>=0&&c<=9) x=(x<<3)+(x<<1)+(c^48),c=getchar();
    return x*f;
}
int a[100010];
int dp[100010];
int main(){
    int n;
    n = read();
    int j,num;
    for (int i = 1; i <= n;i++)
        a[i] = read();
    int ans = 1;
    int cnt = 0;
    for (int i = 1; i <= n;i++){
        cnt++;
        dp[cnt] = 1;
        for ( j =i ; j+1 <= n;j++){
            if(a[j]==a[j+1]){
                dp[cnt]++;
            }
            else{
                i = j;
                break;
            }     
        }
    }
        for (int i = 1; i <= cnt; i++)
        {
            num = min(dp[i], dp[i + 1]);
            ans = max(num, ans);
        }
    cout << ans * 2;
    return 0;
}

 

不知道改进之后对不对,cf上现在还不能交

不过我感觉应该没什么问题了

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define re register
#define sys system("pause");
inline int read(){
    re int x=0,f=1;char c=getchar();
    while(c<0||c>9){if(c==-) f=-1;c=getchar();}
    while(c>=0&&c<=9) x=(x<<3)+(x<<1)+(c^48),c=getchar();
    return x*f;
}
int a[100010],dp[100010],j,num,ans=1,cnt,n;
int32_t main(){
    n = read();
    for (int i = 1; i <= n;i++)
        a[i] = read();
    for (int i = 1; i <= n;i++){
        cnt++;
        dp[cnt] = 1;
        for ( j =i ; j<= n;j++){
            if(a[j]!=a[j+1]){
                dp[cnt] = j - i + 1;
                i = j;
                break;
            }     
        }
    }
    for (int i = 1; i <= cnt-1; i++){
        num = min(dp[i], dp[i + 1]);
        ans = max(num, ans);
    }
    cout << ans * 2;
    sys
    return 0;
}

 

Codeforces Round #545 (Div. 2)A. Sushi for Two

标签:src   clu   ret   col   fine   应该   img   分析   define   

原文地址:https://www.cnblogs.com/guaguastandup/p/10498746.html

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