hdu 5583 Kingdom of Black and White

网站进行企业微信授权登录(附带代码超详细版) 企业微信的扫码登录官方文档 https://work.weixin.qq.com/api/doc/90000/90135/90988 企业微信扫码登录认证流程 上面是官方的图片,看上去比较复杂。因此我用直白简洁的语言梳理下流程。 1、首先在自己的网站上获取到企业微信登录的二维码(二维码怎么获取稍后再说,这里想象下你已经有了一个二维码) 2、你拿着手机扫描二维码,确认登录之后,页面就会自己进行重定向的跳转,跳转的url如何配置下面再讲,但是注意,这个重定向的url可以是内网地址 3、重定向到指 阅读详情

Kingdom of Black and White

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 585    Accepted Submission(s): 193


Problem Description
In the Kingdom of Black and White (KBW), there are two kinds of frogs: black frog and white frog.

Now  N  frogs are standing in a line, some of them are black, the others are white. The total strength of those frogs are calculated by dividing the line into minimum parts, each part should still be continuous, and can only contain one kind of frog. Then the strength is the sum of the squared length for each part.

However, an old, evil witch comes, and tells the frogs that she will change the color of  at most one frog and thus the strength of those frogs might change.

The frogs wonder the  maximum possible strength after the witch finishes her job.
 

Input
First line contains an integer  T , which indicates the number of test cases.

Every test case only contains a string with length  N , including only  0  (representing
a black frog) and  1  (representing a white frog).

⋅   1≤T≤50 .

⋅  for 60% data,  1≤N≤1000 .

⋅  for 100% data,  1≤N≤105 .

⋅  the string only contains 0 and 1.
 

Output
For every test case, you should output " Case #x: y",where  x  indicates the case number and counts from  1  and  y  is the answer.
 

Sample Input
  
2 000011 0101
 

Sample Output
  
Case #1: 26 Case #2: 10
 

Source
 

题意:例如000011,有连续为0的子序列长度为4,连续为1的子序列长度为2,所以这段字符串的价值为4*4+2*2=20,女巫最多可以将一个0或1改成1或0,那么把第5个字符1改成0,最后可以得到5*5+1*1=26

/*
本来以为很快就做出来,结果坑了囧。
开始想的是直接求怎样能得出最长的字段,然后求答案
但是发现110001这种会有问题,于是把他们的每段长度离散化处理
对于长为1的,变化后就莫有了- -
对于长度超过了1的,只需要变化它的左右端点位置  110001 => 100001 || 110000(取其他位置只会变得更小)
所以我们根据字段长度以及字段位置进行分类讨论
*/


#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
using namespace std;
typedef long long ll;
const int maxn = 101000;
const int INF = 0x3f3f3f3f;

char a[maxn];
ll p[maxn];

int main()
{
    int T;
    int cas = 1;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%s",a);
        int len = strlen(a);
        ll ans = 0;
        int tot = 1;
        int l = 0;
        while(l < len)          //先离散化处理
        {
            int r=l;
            while(r<len && a[r]==a[l])
                r++;
            p[tot]=r-l;
            ans+=p[tot]*p[tot];
            tot++;
            l=r;
        }
        ll pans = ans;
        for(int i = 1; i < tot; i++)
        {
            ll tans = ans;
            ll sum = 0;
            if(p[i] == 1)      //连续长度为1的情况
            {
                tans -=1;
                sum = 1;
                if(i > 1)
                {
                    tans -= p[i-1]*p[i-1];
                    sum += p[i-1];
                }
                if(i < tot-1)
                {
                    tans-=p[i+1]*p[i+1];
                    sum += p[i+1];
                }
                pans = max(pans,tans+=sum*sum);
            }
            else        //如果连续长度超过1,则讨论其左右的情况
            {
                if(i > 1)
                {
                    ll tt = tans;
                    tt -= p[i]*p[i];
                    tt-= p[i-1]*p[i-1];
                    tt += (p[i-1]+1)*(p[i-1]+1);
                    tt += (p[i]-1)*(p[i]-1);
                    pans = max(pans,tt);
                }

                if(i < tot-1)
                {
                    ll tt = tans;
                    tt -= p[i]*p[i];
                    tt-= p[i+1]*p[i+1];
                    tt += (p[i+1]+1)*(p[i+1]+1);
                    tt += (p[i]-1)*(p[i]-1);
                    pans = max(pans,tt);
                }
            }
        }
        printf("Case #%d: %I64d\n",cas++,pans);
    }
    return 0;
}




机器人多学科仿真软件:Webots_(19).Webots的插件与扩展开发 通过上述步骤,您可以开发和使用Webots的插件、扩展和接口,以增强其功能和灵活性。 阅读详情

相关推荐

微信群消息监控系统实战:从零搭建Python自动化监控平台

本文详细介绍了如何从零搭建Python微信群消息监控系统,实现自动化监控和记录群消息。通过wxauto库模拟人工操作微信,结合MySQL数据库存储和智能去重策略,系统能高效处理大量消息并支持关键词监控。文章还分享了性能优化、安全合规等实战经验,帮助开发者快速构建高效稳定的监控平台。

weixin_29091105的博客 319

2015 ACM/ICPC Asia Regional Shanghai

A. I Count Two Three题目链接题目大意在平面上有一个实心圆,圆心为(Ox,Oy)(O_x, O_y),半径为rr,圆外有一个大小可忽略的小球AA,在(Ax,Ay)(A_x, A_y)处,速度的方向向量为(Vx,Vy)(V_x, V_y),小球AA碰到圆后会反弹,遵循反射定律,求小球AA是否会经过点B(Bx,By)B(B_x, B_y)?思路 - 计算几何模版题,很容易就能想到判断方

idealism_xxm的专栏 752

RTAB-map:实时高效的SLAM库

Real‐time appearance‐based mapping (RTAB‐Map)是一种基于外观的闭环检测方法,具有良好的内存管理,以满足处理大场景和在线长周期管理要求。RTAB‐Map集成了视觉和激光雷达SLAM方案,并支持目前绝大多数的传感器 是一个强大的、开源的Simultaneous Localization and Mapping(SLAM)库,专为机器人和无人驾驶领域设计。它提供了一套完整的解决方案,用于构建三维地图,并在未知环境中进行实时定位与导航。 github项目地址 RTAB-

weixin_45761399的博客 1万+

HDU5583 Kingdom of Black and White (暴力)

题解:其实此题还是暴力求解的,首先我们把相邻相同的字符分块,然后对于第i个分块与第i+1个分块,枚举(第i个分块字符个数+1和第i+1个分块字符个数-1)的情况与(第i个分块字符个数-1和第i+1个分块字符个数+1)的情况,需注意的是当第i+1个分块若只有一个字符,那么第i个分块、第i+1个分块、第i+2个分块会合成一个分块,同理,当第i个分块只有一个字符时,第i-1个分块、第i个分块、第i+1个分

围巾的ACM博客 483

别再乱调了!Zygo MetroPro软件滤波功能保姆级指南,从均值到鲁棒高斯样条一次讲清

本文深入解析Zygo MetroPro软件的滤波功能,从均值滤波到鲁棒高斯样条等九种算法,帮助用户根据测量对象特性选择最佳滤波组合。通过真实工业案例和参数配置指南,提升光学测量数据的准确性和效率,特别适用于硅晶圆、光学镜片等精密测量场景。

weixin_30888413的博客 156

基于Windows环境的OGG远程抽取异常(经典模式)OGG-02830 Formatting error

MOS提供的解决方法,根据MOS的提示是由于使用的OGG版本太新了,经典模式下已经弃用了这种远程抽取方式。问题:Windows环境下启用远程抽取ADG备库的数据,在启动抽取进程的时候出现如下错误提示。

Mrzhou的博客 379

Kingdom of Black and White (分类讨论)

In the Kingdom of Black and White (KBW), there are two kinds of frogs: black frog and white frog. Now N frogs are standing in a line, some of them are black, the others are white. The total strength o...

a1046765624的博客 529

Unity Sprite Editor切片功能详解:如何快速将一张大图拆分成多个小图(附常见问题解决)

本文详细解析了Unity Sprite Editor的切片功能,指导开发者如何高效地将一张大图拆分为多个独立小图。文章涵盖了自动与手动切片操作步骤、轴心点设置、子精灵命名管理等核心技巧,并针对切片错位、性能优化等常见问题提供了实用解决方案,帮助提升2D游戏资源处理效率。

i0j1k2l3m的博客 646

HDU 5583 Kingdom of Black and White(依旧是暴力)——2015ACM/ICPC亚洲区上海站

HDU 5583 Kingdom of Black and White(依旧是暴力)——2015ACM/ICPC亚洲区上海站

queuelovestack的专栏 3202

Python 爬取新浪财经 7x24(1): 下载数据

前言 最近在做一个需要很多财经数据的项目。于是想到可不可以通过爬虫来解决(尝试白嫖)。 提供财经数据的网站有很多个,其中比较靠谱和更新比较及时的应该是新浪7x24 live数据。 http://finance.sina.com.cn/7x24/?tag=0 这个问题有一定的难度,因为这个网页是动态加载的。每一次只会加载部分数据,而只有拉到底部才可以加载新的数据。 于是乎,我们要做的事情是: 下载数据 保存到数据库 本篇介绍如何下载数据。 代码 闲言少叙书归正文,代码的实现如下: import reque

ZJ_11701的博客 2905

Python爬取上市公司年报并进行财务比率分析:基于异步爬虫与数据挖掘的实战

在当今数据驱动的投资时代,获取并分析上市公司财务数据对于投资者、分析师和研究人员至关重要。中国证监会指定的上市公司信息披露网站——巨潮资讯网,包含了所有A股上市公司的年报、季报及其他公告信息。本项目将展示如何使用Python最新技术栈爬取巨潮网的年报数据,提取关键财务指标,并进行深入的财务比率分析。本文将采用异步爬虫技术提高数据采集效率,使用现代解析库处理PDF和HTML文档,并结合pandas进行数据分析和可视化。整个过程将遵循合规合法的爬虫伦理,尊重网站robots.txt协议,设置合理的请求间隔。

2201_76125261的博客 666

HDU5583 Kingdom of Black and White

Kingdom of Black and White Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 65    Accepted Submission(s): 33 Problem Description In the

Jonariguez 吾本优秀 1032

详解FreeRTOS:低功耗Tickless模式(高级篇—7)

FreeRTOS提供了一个叫做Tickless的低功耗模式,本篇博文我们就来学习一下如何使用这个Tickless模式。

不脱发的程序猿 1896

HDU 5583 Kingdom of Black and White 【贪心】

传送门:HDU 5583 Kingdom of Black and White Problem Description In the Kingdom of Black and White (KBW), there are two kinds of frogs: black frog and white frog. Now N frogs are standing in a line, so...

Waiting For You 248

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

hdu 5583 Kingdom of Black and White(高效)

题目链接:hdu 5583 Kingdom of Black and White代码#include <cstdio> #include <cstring> #include <algorithm>using namespace std; const int maxn = 1e5 + 5; typedef long long ll;char str[maxn]; int L[maxn][2], R[

不慌不忙、不急不躁 890

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

HDU 5583 Kingdom of Black and White

Kingdom of Black and White Problem Description In the Kingdom of Black and White (KBW), there are two kinds of frogs: black frog and white frog. Now N frogs are standing in a line, some of them are

Loi_MeiCo の 博客 497

hdu 5583 Kingdom of Black and White 思路题

Kingdom of Black and White Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1206 Accepted Submission(s): 375Problem DescriptionIn the Kingdo

不念过往 , 不愧恒心 618

HDU 5583 Kingdom of Black and White

接过队友的锅敲这道题,结果没太想清楚着急直接敲调试了好久。。又被队友嫌弃。。真心为我的代码能力担忧。。 “不要头脑一热就开始写” 下来检查发现当时的代码都写错了。。话说区域赛的数据为何这么弱。。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5583题意:给定01串,连续的相同字符的长度的记为距离。改变一个字符,使得最后的距离平方和最大。分析:对于每

Tuesday 482

HDU-5583-Kingdom of Black and White【2015上海赛区】【暴力】

HDU-5583-Kingdom of Black and White

Linoy 1461

HDU 5583 Kingdom of Black and White [Ad Hoc]

2015上海区域赛 K题Description给一串0和1,然后你可以变一个 这样就分成了若干块 求然后每块长度的平方和最大Algorithm两种情况 一种是长度大于1 这样变两边 一种是长度=1,这样3段就练成一段Hint貌似必须用vector,不然超时?Code#include <cstdio> #include <cstring> #include <iostream> #inclu

more time 229

HDU-5583 Kingdom of Black and White(思维)

Kingdom of Black and White Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2398    Accepted Submission(s): 753 Problem Description

huatian5的博客 451
上一篇: hdu 5596 GTW likes gt
下一篇: hdu 5573Binary Tree
Tyuio28
博客等级 码龄11年 12粉丝 279原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值