div3 970

news2024/9/23 9:27:39

Problem - D - Codeforces

关键在于如果是环的话,环中的每一个的值都是一样的

#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
    int nn;cin>>nn;
    while(nn--){
    	int n;cin>>n;
    	int a[n+1],i=0;while(++i<=n)cin>>a[i];
    	string s;cin>>s;s=" "+s;
    	int st[n+1]={0},res[n+1]={0};
    	i=0;while(++i<=n){
            if(!st[i]){//如果有一个环,那么这个环他们的ans都是一样的
            int ans=0;while(!st[i]){
                st[i]=1;ans+=s[i]=='0';i=a[i];
            }
            while(st[i]!=2){//2表示已经确定了的
                res[i]=ans;st[i]=2;i=a[i];
            }
        }
        if(i!=n)cout<<res[i]<<' ';
        else cout<<res[i]<<endl;
    	}
    }
}

Problem - E - Codeforces

进行操作删除(最多一次)和替代使得string变成交替字串

首先ans=n-奇数某字符的个数-偶数某字符的个数,某字符指个数最大的

然后难在奇数时怎么快速删除,我们使用计数前缀和(方便个人记忆弄的名字)示例如下:

#include<bits/stdc++.h>
using namespace std;
int main() {//二维的数量前缀和,ans=n-奇数某字符的个数-偶数某字符的个数,某字符指个数最大的
    int nn; cin >> nn;
    while (nn--) {
        int n; cin >> n;
        string s; cin >> s; s = " " + s;
        if (n & 1) {//要删除一个
            int f1[n+1][26 + 1], f2[n+1][26 + 1];
            memset(f1, 0, sizeof f1); memcpy(f2, f1, sizeof(f1));
            int i = 0, ans = 1e9; while (++i <= n) {
                int c = s[i] - 'a' + 1;
                int j=0;while(++j<=26)f1[i][j]=f1[i-1][j],f2[i][j]=f2[i-1][j];
                if (i & 1)f1[i][c]+= 1;
                else f2[i][c] += 1;
            }
            i = 0; while (++i <= n) {
                int odd = 0, even = 0;//删除i后,奇数/偶数的最大个数
                int j = 0; while (++j <= 26) {
                    odd = max(odd, f2[n][j] - f2[i][j] + f1[i - 1][j]);
                    even = max(even, f1[n][j] - f1[i][j] + f2[i - 1][j]);
                }
                ans = min(ans, n - odd - even);
                }
            cout << ans << endl;
        }
        else {
            int f1[26 + 1], f2[26 + 1]; memset(f1, 0, sizeof f1); memset(f2, 0, sizeof f2);
            int i = 0; while (++i <= n) {
                int c = s[i] - 'a' + 1;
                if (i & 1)f1[c]++;
                else f2[c]++;
            }
            int odd = 0, even = 0;
            i = 0; while (++i <= 26) {
                odd = max(odd, f1[i]);
                even = max(even, f2[i]);
            }
            cout << n - odd - even << endl;
        }
    }
}

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

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

相关文章

电路分析 ---- 电平移位电路

1 电平移位电路 如图所示的电平移位电路&#xff0c;用于ADC的前级驱动&#xff0c;它将一个变化范围为-10V ~ 10V的输入信号&#xff0c;线性变化成0.048V ~ 4.048V的信号&#xff0c;以满足ADC的输入范围要求。 2 电路说明 V R E F V_{REF} VREF​为电压基准源&#xff0c…

假期学习----iOS多线程

iOS多线程 https://juejin.cn/post/6844903566398717960 什么是GCD Grand Central Dispatch&#xff08;GCD&#xff09; 是 Apple 开发的一个多核编程的较新的解决方法。它主要用于优化应用程序以支持多核处理器以及其他对称多处理系统。 GCD的用处&#xff1a; GCD 可用…

mac安装spark

参考&#xff1a;在Mac上安装Spark apache-spark-3.5.1_mac安装spark-CSDN博客 几个需要用到的路径&#xff1a; hadoop的bin目录&#xff1a;/opt/homebrew/Cellar/hadoop/3.4.0/bin spark的conf目录/opt/homebrew/Cellar/apache-spark/3.5.2/libexec/conf spark的bin目录&am…

一般位置下的3D齐次旋转矩阵

下面的矩阵虽然复杂&#xff0c;但它的逆矩阵求起来非常简单&#xff0c;只需要在 sin ⁡ θ \sin\theta sinθ 前面加个负号就是原来矩阵的逆矩阵。 如果编程序是可以直接拿来用的&#xff0c;相比其它获取一般旋转轴不经过原点的三维旋转矩阵的途径或算法&#xff0c;应该能…

ArmSoM CM5 RK3576核心板推出,强势替代树莓派CM4

ArmSoM团队隆重推出全新的CM5 RK3576核心板&#xff0c;这款模块专为嵌入式开发者设计&#xff0c;凭借其强大的性能与丰富的扩展性&#xff0c;完美替代树莓派CM4&#xff0c;成为开发者们的理想选择。 CM5核心板采用了先进的RK3576 SoC&#xff0c;凭借卓越的计算能力和出色…

Java使用Selenium进行Web项目的UI自动化测试

目录 配置Selenium 1.使用Maven管理依赖 将三个依赖放到java的pom文件中 2.这里使用Edge进行简单的UI操作 3.提醒 FireFox和Chrome启动失败 Firefoxdriver启动失败 Chromedriver启动失败 java如何使用Selenium进行web的UI自动化测试 对一个项目进行测试目录详情…

Python作为客户端连接websocket

缘起 因为需要将MQTT中的数据推送给前端,但是前端不会直接连接MQTT,所以服务端做了一个中间层,通过websocket推送,但是在开发的过程中前端总是认为推送的数据不及时,所以这里又实用Python单独做了一个客户端做时间记录验证。开始吧 安装三方包 Python的生态很方便,这里…

oracle数据块内部结构详解

文章目录 Oracle数据块详解概述Oracle块具有以下特点&#xff1a;① 最小的I/O单元&#xff1b;② 包含一个或多个OS块&#xff1b;③ 大小由参数DB_BLOCK_SIZE决定&#xff1b;④ 数据库创建时设置&#xff0c;数据库创建后不能更改 Oracle数据块详解 概述 操作系统块是…

2024 第七届“巅峰极客”网络安全技能挑战赛初赛 Web方向 题解WirteUp

EncirclingGame 题目描述&#xff1a;A simple game, enjoy it and get the flag when you complete it. 开题&#xff0c;前端小游戏&#xff0c;红点出不去就行 直接玩通关了 看看如何不玩也能拿到flag&#xff0c;flag存储在后端php文件内&#xff0c;前端找不到。 看一下…

前端工程化之【模块化规范】

目录 模块化概述&#xff1a;什么是模块化为什么需要模块化 有哪些模块化规范导入与导出的概念CommonJS 规范ES6 官方模块化规范导出数据导入数据Node 中运行 ES6 模块 模块化概述&#xff1a; 什么是模块化 ● 将程序文件依据一定规则拆分成多个文件&#xff0c;这种编码方式…

区块链的含义是什么

目录 区块链的基本定义 区块链的构成与特性 区块链的类型 区块链的应用 区块链的基本定义 区块链是一种分布式数据存储、点对点传输、共识机制和加密算法等计算机技术的新型应用模式。它通过将数据区块按照时间顺序相连形成链式结构&#xff0c;确保数据的真实性和不可篡改…

代码随想录训练营 Day50打卡 图论part01 理论基础 98. 所有可达路径

代码随想录训练营 Day50打卡 图论part01 一、理论基础 DFS&#xff08;深度优先搜索&#xff09;和 BFS&#xff08;广度优先搜索&#xff09;在图搜索中的核心区别主要体现在搜索策略上&#xff1a; 1、搜索方向&#xff1a; DFS&#xff1a;深度优先&#xff0c;一条路走到…

突破教材,简单聊聊《文件系统》

文章目录 前言&#xff1a;文件系统的引入&#xff1a;认识物理磁盘&#xff1a; 对磁盘的存储进行逻辑抽象&#xff1a;LBA逻辑区块地址&#xff1a; &#x1f680;文件系统的理解&#xff1a;理解各个区段&#xff1a;&#x1f6f9;深入理解 inode&#xff1a;inode和文件名&…

9.4日常记录

一、索英笔试 1.实现strcpy 1.char src[] "Hello, World!";&#xff1a; 这里定义了一个字符数组。这个字符串 "Hello, World!" 的内容被直接存储在这个数组中&#xff0c;数组的大小由字符串的长度加上一个额外的位置用于存储字符串结束符\0自动确定。 …

CSS英文换行

在CSS中&#xff0c;如果你想让英文单词换行&#xff0c;可以使用word-break: break-all;属性。这个属性会强制浏览器在任何字符之间进行换行&#xff0c;即使没有空格或其他分隔符。 没有加样式前的运行结果 CSS样式 p {word-break: break-all; } 运行结果 这将确保段落内的…

【弱监督时间动作定位】Probabilistic Vision-Language Representation for WSTAL 论文阅读

Probabilistic Vision-Language Representation for Weakly Supervised Temporal Action Localization 论文阅读 Abstract1 Introduction2 RELATEDWORK2.1 Weakly Supervised Temporal Action Localization2.2 Vision Language Pre-training2.3 Probabilistic Representation 3…

VS2022卸载记录

Releases microsoft/VisualStudioUninstaller (github.com) 在上面的网址中下载压缩包 下载之后解压&#xff0c;之后选择红框文件&#xff0c;右键选择以管理员身份运行 输入Y&#xff0c;回车 &#xff0c;之后等待程序执行结束 该操作之后&#xff0c;我发现我的安装目录中…

CentOS7 MySQL 数据库基本使用

3.查看当前库中存在哪些表 mysql> show tables 4.查看表的结构 mysql> describe user mysql> describe mysql.user 5.查询数据库服务的基本信息 mysql> status 二、创建及删除库和表 1.创建新的库 CREATE DATABASE 语句&#xff1a;用于创建一个新的库&…

【音视频】播放音视频时发生了什么? 视频的编解码 H264是什么? MP4是什么?

目录 ✨播放一个视频的流程✨为什么要编码&#xff08;压缩&#xff09;视频数据&#xff1f;✨如何编码&#xff08;压缩&#xff09;数据&#x1f384;简单的例子&#x1f384;音视频编码方式&#x1f384;视频编码格式H264编码是什么&#xff1f;发展历程&#xff1f;H.264基…

使用python+opencv解析图像和文本数据

1. 创建虚拟环境 新建文件夹, 并在文件夹中创建虚拟环境,可以使用Vscode打开文件夹, 然后在终端中输入以下命令: python -m venv venv2. 激活虚拟环境 在终端中输入以下命令: venv\Scripts\activate3. 安装依赖 在终端中输入以下命令: pip install opencv-pythonpip inst…