Educational Codeforces Round 110 (Rated for Div. 2) C. Unstable String

news2024/7/6 19:01:32

dp写法:f[i][j]表示第i位,当前位为j,能往前找的最大的合法长度。

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'

using namespace std;

typedef pair<int, int> PII;
typedef long long ll;

const int N = 200010;

int f[N][2];

inline void solve()
{
	string s;
	cin >> s;
	int n = s.size();
	s = ' ' + s;
	
	memset(f, 0, (2 * n + 5) * sizeof (int));
	for(int i = 1; i <= n; i ++)
	{
		if(s[i] == '0')f[i][0] = f[i - 1][1] + 1;
		else if(s[i] == '1')f[i][1] = f[i - 1][0] + 1;
		else
		{
			f[i][1] = f[i - 1][0] + 1;
			f[i][0] = f[i - 1][1] + 1;
		}
	}
	ll ans = 0;
	for(int i = 1; i <= n; i ++)
	{
		if(s[i] == '0')ans += f[i][0];
		else if(s[i] == '1')ans += f[i][1];
		else ans += max(f[i][0], f[i][1]);
	}
	cout << ans << endl;
}

int main()
{
	IOS
	int _;
	cin >> _;
	while(_ --)
	{
		solve();
	}
	
	return 0;
}

 二分写法

w[i]记录第i个位置能往前找的最大合法长度,pos数组记录每个连续问号串中第一个问号的位置。

#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl '\n'

using namespace std;

typedef pair<int, int> PII;
typedef long long ll;

const int N = 200010;

char s[N];
int w[N];
int l = 1;
char kep;

bool check(int u)
{
	if(u % 2 == l % 2)
	{
		if(kep == '?')
		{
			kep = s[u];
			return true;
		}
		if(kep == s[u] || s[u] == '?')return true;
		return false;
	}
	else
	{
		if(kep == '?')
		{
			if(s[u] == '1')kep = '0';
			else if(s[u] == '0')kep = '1';
			return true;
		}
		if(kep == '0' && s[u] == '1')return true;
		if(kep == '1' && s[u] == '0')return true;
		if(s[u] == '?')return true;
		return false;
	}
}

void solve()
{
	cin >> s + 1;
	int n = strlen(s + 1);
	
	vector<int> pos;
	for(int i = 1; i <= n; i ++)
	{
		if(s[i] == '?' && s[i - 1] != '?')
		{
			pos.push_back(i);
		}
	}
	pos.push_back(2e9);
	
	l = 1;
	kep = s[l];
	for(int i = 2; i <= n; i ++)
	{
		if(!check(i))
		{
			int L = 0, R = pos.size() - 1;
			int f = 0;
			if(s[i - 1] == '?')f = 1;
			
			while(L < R)
			{
				int mid = L + R + 1 >> 1;
				if(pos[mid] < i)L = mid;
				else R = mid - 1;
			}
			int tmp = i;
			if(f && pos[L] < i)tmp = pos[L];
			
			for(int j = l; j < tmp; j ++)
			{
				w[j] = i - 1;
			}
			
			l = tmp;
			kep = s[l];
			i = tmp;
		}
	}
	
	for(int i = l; i <= n; i ++)w[i] = n;
	
	ll ans = 0;
	for(int i = 1; i <= n; i ++)
	{
		ans += w[i] - i + 1;
	}
	cout << ans << endl;
}

int main()
{
	IOS
	int _;
	cin >> _;
	while(_ --)
	{
		solve();
	}
	
	return 0;
}

Problem - 1535C - Codeforces

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/892408.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis进阶篇 - 04发布订阅、布隆过滤器、过期策略、回收机制、管道...核心知识原理

Redis底层原理篇&#xff0c;​让学习绚丽多彩起来&#xff01;&#xff01;&#xff01;&#xff08;需要原图私信&#xff09;

【服务器】Strace显示后台进程输出

今天有小朋友遇到一个问题 她想把2331509和2854637这两个进程调到前台来&#xff0c;以便于在当前shell查看这两个python进程的实时输出 我第一反应是用jobs -l然后fg &#xff08;参考这里&#xff09; 但是发现jobs -l根本没有输出&#xff1a; 原因是jobs看的是当前ses…

【Docker】Docker Desktop配置资源:cpu、内存等(windows环境下)

Docker Desktop配置资源&#xff1a;cpu、内存等&#xff08;windows环境下&#xff09; 一、WSL2 以及 hyper-v区别&#xff0c;二者安装docker desktop1.WSL2和hyper-v区别2.安装Docker Desktop 二、docker desktop限额配置&#xff0c;资源配置方法 Docker 是指容器化技术&a…

Redis进阶底层原理- Redis结构图与底层数据编码结构

Redis底层原理篇&#xff0c;​让学习绚丽多彩起来&#xff01;&#xff01;&#xff01;&#xff08;需要原图私信&#xff09;

DAMO-YOLO:实时目标检测设计的报告

ReadPaperhttps://readpaper.com/pdf-annotate/note?pdfId4748421678288076801eId1920373270663763712 Abstract 在本报告中&#xff0c;我们提出了一种快速准确的目标检测方法&#xff0c;称为DAMO-YOLO&#xff0c;它比最先进的YOLO系列实现了更高的性能。DAMO-YOLO 通过…

并发编程系列 - ReadWriteLock

实际工作中&#xff0c;为了优化性能&#xff0c;我们经常会使用缓存&#xff0c;例如缓存元数据、缓存基础数据等&#xff0c;这就是一种典型的读多写少应用场景。缓存之所以能提升性能&#xff0c;一个重要的条件就是缓存的数据一定是读多写少的&#xff0c;例如元数据和基础…

[python] 使用Jieba工具中文分词及文本聚类概念

前面讲述了很多关于Python爬取本体Ontology、消息盒InfoBox、虎扑图片等例子&#xff0c;同时讲述了VSM向量空间模型的应用。但是由于InfoBox没有前后文和语义概念&#xff0c;所以效果不是很好&#xff0c;这篇文章主要是爬取百度5A景区摘要信息&#xff0c;再利用Jieba分词工…

衣服材质等整理(时常更新)

参考文章&图片来源 https://zhuanlan.zhihu.com/p/390341736 00. 天然纤维 01. 化学纤维 02. 聚酯纤维&#xff08;即&#xff0c;涤纶&#xff09; 一种由有机二元酸和二元醇通过化学缩聚制成的合成纤维。具有出色的抗皱性和保形性&#xff0c;所制衣物在穿着过程中不容…

2023HW-8月(10-15)53个0day,1day漏洞汇总含POC、EXP

点击"仙网攻城狮”关注我们哦~ 不当想研发的渗透人不是好运维 让我们每天进步一点点 简介 2023HW-8月10-15号0day、1day漏洞汇总&#xff08;已更新&#xff09;&#xff0c;包含以下漏洞需要自取。 链接&#xff1a;https://pan.baidu.com/s/1Tr94yVFSHn_C6YiJcVprAw 提取…

【C++初阶】string类字符串包不包含‘\0‘

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;C航路 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x1…

Leetcode32 最长有效括号

给你一个只包含 ( 和 ) 的字符串&#xff0c;找出最长有效&#xff08;格式正确且连续&#xff09;括号子串的长度。 代码如下&#xff1a; class Solution {public int longestValidParentheses(String str) {Stack<Integer> s new Stack<>();int res 0;int st…

【可变形卷积3】 DCNv2 安装

使用RTM3D 代码&#xff0c;CenterTrack代码需要用DCN 1、安装DCNv2 &#xff08;1&#xff09;github上最新版的DCNv2源码在"https://github.com/CharlesShang/DCNv2"&#xff0c;但是该版本源码不支持PyTorch1.7&#xff0c;如果使其支持PyTorch1.7需要做以下修改…

ClickHouse(二十二):Clickhouse SQL DML操作及导入导出数据

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;含各种IT体系技术&#xff0c;IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 &…

JLSX 模版指令导出Excel

1. 官方相关链接 官网&#xff1a;https://jxls.sourceforge.net/reference/if_command.html JxlsAPI&#xff1a; https://jxls.sourceforge.net/javadoc/jxls/index.html Jxls POI&#xff1a; https://jxls.sourceforge.net/javadoc/jxls/index.html Jxls JExcel&#xff1…

cesium学习记录09-turf.js的使用(画矩形结合地形生成三角网)

上一篇是绘制多边形&#xff0c;这一篇来说绘制矩形&#xff0c;但又因为只说绘制矩形太短了&#xff0c;所以就结合一下turf.js&#xff0c;生成一下地形三角网 Turf.js中文网 最终效果&#xff1a; 一、引入Turf.js 1&#xff0c;下载 npm install turf/turf2&#xff0c;…

html(七)meta标签

一 meta标签 1、背景&#xff1a;发现自带某些请求头2、本文没有实际的生产应用场景,仅仅作为技术积累 ① meta标签含义 1、metadata: 元数据,是用于描述数据的数据,它不会显示在页面上,但是机器却可以识别2、应用场景&#xff1a; [1]、SEO搜索引擎优化[2]、定义页面使用…

React 调试开发插件 React devtools 的使用

可以在谷歌扩展应用商店里获取这个插件。如果不能访问谷歌应用商店&#xff0c;可以点此下载最新版 安装插件后&#xff0c;控制台出现 “Components” 跟 “Profiler” 菜单选项。 查看版本&#xff0c;步骤&#xff1a; 下面介绍 react devtools 的使用方式。 在 Component…

改进YOLO系列:1.添加SE注意力机制

添加SE注意力机制 1. SE注意力机制论文&#xff12;. SE注意力机制原理&#xff13;. SE注意力机制的配置&#xff13;.&#xff11;common.py配置&#xff13;.&#xff12;yolo.py配置&#xff13;.&#xff13;yaml文件配置 1. SE注意力机制论文 论文题目&#xff1a;Squee…

人工智能原理(10)

目录 一、进化计算 1、概述 2、进化算法搜索方式特点 二、遗传算法 1、遗传算法的基本原理 三、进化规划 1、标准进化规划 2、进化规划的基本技术 四、进化策略 1、进化策略及其改进 2、进化策略基本技术 一、进化计算 1、概述 进化计算包括遗传算法、进化规划、进…

安装IIS服务

什么是IIS服务 IIS&#xff08;Internet Information Services&#xff09;是微软公司开发的一款用于托管和管理Web应用程序的服务软件。IIS服务是一种在Windows操作系统上运行的Web服务器&#xff0c;它能够处理HTTP&#xff08;Hypertext Transfer Protocol&#xff09;和HTT…