C++课后习题训练记录Day176

1.练习项目 :

题目描述

小蓝有一个只包含 0 和 1 字符串,请你帮他算算这个字符串有多少个子串将 0 和 1 取反后,再将整个子串反过来和原子串一样。

输入描述

输入第一行包含一个整数 n(n≤5×105),表示字符串长度。

第二行包含一个长度为 n 的字符串 S,S 只拥有 0、1 两种字符。

输出描述

输出仅一行,包含一个整数,表示答案。

2.选择课程

在蓝桥云课中选择题库,选择题号1627并开始练习。

3.开始练习

(1)源码 :

#include <bits/stdc++.h>

using namespace std;

using ll=long long;

const int N=1e6+10;

char sN;

int pN,tN;

int main()

{

ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);

int n;

cin>>n>>s+1;

for(int i=2*n+1;i>=1;i--){

ti=(i&1)?0:(si\>\>1=='1'?1:-1);

}

t0=3,t2\*n+2=3;

int c=0,r=0;

for(int i=1;i<=2*n+1;i++){

pi<r?min(r-i,p2\*c-1):1;

while(ti+p\[i]+ti-p\[i]==0)pi++;

if(i+pi>r)c=1,r=i+pi;

}

ll ans=0;

for(int i=1;i<=2*n+1;i++){

ans+=(pi-1)/2;

}

cout<<ans<<'\n';

return 0;

}

(2)检验结果

对此代码进行检验,检验后无报错,提交此代码,判题结果为正确100分。

(3)练习心得:

注意每段代码末尾的分号是否存在 ,如不存在则需即使补充;输入法是否切换为英语模式;语法是否错误。

相关推荐
Lhan.zzZ几秒前
Qt:动态库模块框架设计
开发语言·c++·qt
quantdash_cc5 分钟前
如何从多只股票的历史行情构建收益率矩阵?Python 与 QuantDash 实战教程
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
wuminyu8 分钟前
JVM规范学习总结-JVM规范基本概念
java·linux·c语言·jvm·c++
Demon--hx1 小时前
jsoncpp 核心概念梳理:命名空间、Value 容器与格式化输出
c++
不是万能的豆学长4 小时前
filetidy 文件整理助手:一键归类 + 规范重命名(Python 零依赖单文件工具)
大数据·开发语言·python·技术美术
懂点Tech8 小时前
ctfshow MISC入门图片篇(信息附加):misc41解题思路
开发语言·python
catchadmin9 小时前
PHP 8.7 协程新提案 让跨协程代码共享请求身份
开发语言·php
念何架构之路10 小时前
go-grpc设计思想
开发语言·后端·golang
酷炫码神11 小时前
Day 10|Pinia 状态管理:把散落在各组件的数据,收进一个全局仓库
android·开发语言·javascript
Elastic 中国社区官方博客11 小时前
我们如何通过 70 多个拉取请求,将 OpenTelemetry Java agent 迁移到 invokedynamic
java·大数据·开发语言·elasticsearch·搜索引擎·全文检索·es