zoukankan      html  css  js  c++  java
  • Kingdom of Black and White

    #include<bits/stdc++.h>
    #define inf 0x3f3f3f3f
    #define ll long long
    #define MAX 1000001
    const ll N = 1e5+7;
    const ll mod = 1e9+7;
    using namespace std;
    ll q[N];
    int main(){
        int t;scanf("%d",&t);
        for(int _=1;_<=t;++_){
            memset(q,0,sizeof(q));
            string s;
            int p=0,l=0;
            cin>>s;
            int n=s.length();
            for(int i=0;i<n;++i){
                if(s[i]!=s[i+1]){
                    q[++p]=i-l+1;
                    l=i+1;
                }
            }//原贡献 
            ll y=0; 
            for(int i=1;i<=p;++i)
                y=y+q[i]*q[i];
            ll ans=y;
            
            //改变块的长度不为1
            if(p>=2){
                ll ans1=0;    //改变量 
                for(int i=1;i<p;++i)
                    ans1=max(ans1,abs(q[i]-q[i+1]));
                if(2*ans1+2>0)    ans=ans+2*ans1+2;
            }
            
            //改变块长度为1
            if(p>=3){
                ll ans2=0;    //改变量 
                for(int i=2;i<p;++i){
                    if(q[i]!=1)    continue;
                    ll a=q[i-1],b=q[i+1];
                    ans2=max(ans2,a*b+a+b);
                }
                if(ans2>0)    ans=max(ans,y+ans2*2);
            }
            printf("Case #%d: %lld
    ",_,ans);
        }
        return 0;   
    }
  • 相关阅读:
    Eclipse常用插件汇总
    关于销售订单
    java下载文件的种方式
    左右对联
    链表
    Spring MVC 入门
    JAVA环境配置总结
    struts2 iterator判断奇偶
    保存页面的浏览记录
    心扬JS分页
  • 原文地址:https://www.cnblogs.com/PdrEam/p/14518617.html
Copyright © 2011-2022 走看看