Educational Codeforces Round 168 (Rated for Div. 2)(A~D题题解)

A. Strong Password

思路:想要最长的时间,那么肯定就是如果存在前后相同的字母的时候,在中间插入一个不同的字符 ,如果不存在前后相同的字符,直接在最后插入一个和原字符串最后一个字符不同的字符

#include <bits/stdc++.h>  
using namespace std;  
#define int long long  int t;  
string s;  signed main() {  cin >> t;  while (t--) {  cin >> s;  if(s.size()==1){if(s =="z")cout<<"za"<<"\n";else{cout<<s+'z'<<"\n";}continue;}bool modified = false; for (int i = 1; i < s.size(); i++) {  if (s[i] == s[i - 1]) {  char charToInsert;  if (s[i - 1] != 'z') {  charToInsert = s[i - 1] + 1; } else {  charToInsert = 'a'; }  s.insert(s.begin() + i, charToInsert); modified = true;  break; }  }  if(modified==false){if(s[s.size()-1]!='z')s+=s[s.size()-1]+1;else if(s[s.size()-1]=='z'){s+='a';}}cout << s << "\n";  }  return 0;  
}

 B. Make Three Regions

 

思路:最开始最多只有一个连通区域,我们只需要判断是否存在

x . x    或者   . . .  这种情况的数据,如果存在,则计数的cnt++,最后输出cnt即可
. . .               x . x

#include<bits/stdc++.h>
using namespace std;
#define int long long
int t;
int n;
int a[3][200005];
char s;
signed main()
{cin>>t;while(t--){cin>>n;for(int i=1;i<=2;i++){for(int j=1;j<=n;j++){cin>>s;if(s=='.')a[i][j]=1;elsea[i][j]=0;}}int cnt=0;for(int j=1;j<=n-2;j++){if(a[1][j]==0&&a[1][j+1]==1&&a[1][j+2]==0&&a[2][j]==1&&a[2][j+1]==1&&a[2][j+2]==1)cnt++;else if(a[1][j]==1&&a[1][j+1]==1&&a[1][j+2]==1&&a[2][j]==0&&a[2][j+1]==1&&a[2][j+2]==0)cnt++;}cout<<cnt<<"\n";}return 0;} 

C. Even Positions

 思路:贪心问题,我们用cnt来统计出现的左括号的次数,碰到左括号则cnt++,碰到右括号,则cnt--并且计算与上一个左括号的差值,如果碰到" _ "则需要判断cnt的次数,如果是0,则放置左括号,非0就是右括号

那么我们怎么去记录左括号的位置呢,可以用栈或者队列,我这边用的队列,每经历一个左括号,就将左括号的下标pb进队列里面,然后碰到右括号则计算与队尾的差值,并且将队列里的队尾元素弹出

#include<bits/stdc++.h>  
using namespace std;  
#define int long long  signed main() {  int t;  cin >> t;  while (t--) {  string s;  int n;  cin >> n;  cin >> s;  int sum = 0;  int cntl = 0;  deque<int> q;  for (int i = 0; i < n; i++) {  if (s[i] == '_') {  if (cntl > 0) {  cntl--;  sum += i - q.back();  q.pop_back();  } else {   cntl++;  q.push_back(i); }  } else if (s[i] == '(') {  cntl++;  q.push_back(i);   } else if (s[i] == ')') {  if (cntl > 0) {  cntl--;  sum += i - q.back();   q.pop_back();   }  }  }  cout << sum << "\n";  }  return 0;  
}

D. Maximize the Root

思路:有趣的树上dp问题,我们只需要用一个minn来统计顶点v的最大转移值即可

面对每个子树,我们都有两种情况,如果说我这个顶点v的值要是大于子树的值,那么就不要转移了,否则值会更小,如果小于子树u的值,那么就要加起来除以2

#include<bits/stdc++.h>
using namespace std;
#define int long longint t;
int n;
int f[200005];
int v;
vector<int> G[200005];void dfs(int v)
{int minn=0x3f3f3f3f;//表示v的儿子结点的最大转移值 for(int u:G[v]){dfs(u);minn=min(minn,f[u]);}if(minn==0x3f3f3f3f){return ;}if(v==1){f[1]+=minn;return ;}if(f[v]<minn){f[v]=(f[v]+minn)/2;}else{f[v]=minn;}
}signed main()
{ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>t;while(t--){cin>>n;for(int i=1;i<=n;i++){cin>>f[i];G[i].clear();}for(int i=2;i<=n;i++){cin>>v;G[v].push_back(i);}dfs(1);cout<<f[1]<<"\n";}return 0;
}

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

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

相关文章

Go语言入门进阶语法 | 数据结构 |指针|结构体|数组|切片|Map|方法|接口|错误|io库|泛型

✅作者简介&#xff1a;CSDN内容合伙人、信息安全专业在校大学生&#x1f3c6; &#x1f525;系列专栏 &#xff1a; &#x1f4c3;新人博主 &#xff1a;欢迎点赞收藏关注&#xff0c;会回访&#xff01; &#x1f4ac;舞台再大&#xff0c;你不上台&#xff0c;永远是个观众。…

QGIS 缓冲区交集信息提取

目标 计算出靠近河道的农田数量及位置&#xff0c;具体方法为使用QGIS 中计算出距离线图层&#xff08;代表河道&#xff09;100 米范围内的点&#xff08;代表水田&#xff09;图层中的点。 具体步骤 步骤 1: 创建缓冲区 首先需要基于线图层创建一个缓冲区图层。 打开 QGIS…

JavaScript基础——JavaScript调用的三种方式

JavaScript简介 JavaScript的作用 JavaScript的使用方式 内嵌JS 引入外部js文件 编写函数 JavaScript简介 JavaScript&#xff08;简称“JS”&#xff09;是一种具有函数优先的轻量级&#xff0c;解释型或即时编译型的编程语言。它是Web开发中最常用的脚本语言之一&#x…

软件测试:动态黑盒测试的过程

要成为一个成功的软件测试员&#xff0c;需要采用更结构化的、目标明确的方法继续测试。 本文粗略描述动态黑盒测试的结构化过程 目录 1.动态黑盒测试 拿到需求文档或产品说明书 定义测试用例 test-case 2. 通过性测试和时效性测试 3. 等价类划分 4. 数据测试 边界条件…

【Redis】 拓展:Redis - BigKey方案探讨

BigKey: 用户越多&#xff0c;redis数据越多&#xff0c;bigkey会使得缓存数据更大&#xff0c;网络带宽会被占用&#xff0c;执行效率就低下&#xff0c;高并发的时候吞吐量QPS也会下降。 产生原因&#xff1a; 看如下list&#xff1a; 一个key的内容太大&#xff0c;比如1M&…

【宝藏系列】物联网中常用的十种通信协议

【宝藏系列】物联网中常用的十种通信协议 文章目录 【宝藏系列】物联网中常用的十种通信协议1️⃣MQTT2️⃣CoAP3️⃣AMQP4️⃣XMPP5️⃣LwM2M6️⃣HTTP7️⃣DDS8️⃣Bluetooth Low Energy9️⃣LoRaWAN1️⃣0️⃣NB-IoT 1️⃣MQTT MQTT&#xff08;Message Queuing Telemetry T…

JNDI注入-高版本绕过

参考博客&#xff1a; JNDI注入与动态类加载 探索高版本 JDK 下 JNDI 漏洞的利用方法 - 跳跳糖 (tttang.com) 分析版本 jdk8u201 分析流程 修复 在ldap绕过中&#xff0c;我们讲了LDAP的修复&#xff0c;下面用jdk8u201具体来看下修复。 修复之前&#xff0c;利用是在L…

英文文献翻译方法哪个好?高效率的翻译方法分享

三伏天的酷热也抵挡不住学术人探索知识的脚步&#xff0c;阅读和翻译英文文献几乎已经成为了许多研究者和学者的日常。然而在面对浩如烟海的英文资料时&#xff0c;如何高效准确地进行翻译&#xff0c;成为了亟待解决的问题。 今天我便挖掘到了5款实用的英文文献翻译工具&…

【论文共读】【翻译】【GPT】Improving Language Understanding by Generative Pre-Training

GPT 原论文地址 翻译&#xff1a; Improving Language Understanding by Generative Pre-Training 通过生成式预训练提高语言理解能力 0. 摘要 自然语言理解包括各种不同的任务&#xff0c;例如文本蕴涵、问答、语义相似性评估和文档分类。尽管大量未标记的文本语料库很丰富…

《昇思25天学习打卡营第24天》

接续上一天的学习任务&#xff0c;我们要继续进行下一步的操作 构造网络 当处理完数据后&#xff0c;就可以来进行网络的搭建了。按照DCGAN论文中的描述&#xff0c;所有模型权重均应从mean为0&#xff0c;sigma为0.02的正态分布中随机初始化。 接下来了解一下其他内容 生成…

科普文:万字梳理高性能 Kafka快的8个原因

概叙 科普文&#xff1a;万字详解Kafka基本原理和应用-CSDN博客 科普文&#xff1a;万字梳理31个Kafka问题-CSDN博客 我们都知道 Kafka 是基于磁盘进行存储的&#xff0c;但 Kafka 官方又称其具有高性能、高吞吐、低延时的特点&#xff0c;其吞吐量动辄几十上百万。 在座的…

苹果safari历史记录如何恢复?4大秘籍,重访历史足迹

作为苹果设备上的默认浏览器&#xff0c;Safari为我们提供了便捷、快速的网页浏览体验。但是&#xff0c;如果出现意外删除或其他情况&#xff0c;我们可能会丢失Safari历史记录&#xff0c;这无疑给我们工作和学习带来了诸多不便。本文旨在帮助广大iPhone用户解决这一难题。通…

【音频识别】十大数据集合集,宝藏合集,不容错过!

本文将为您介绍10个经典、热门的数据集&#xff0c;希望对您在选择适合的数据集时有所帮助。 1 RenderMe-360 发布方&#xff1a; 上海人工智能实验室 发布时间&#xff1a; 2023-05-24 简介&#xff1a; RenFace是一个大规模多视角人脸高清视频数据集&#xff0c;包含多样的…

便携移动工作站,端侧 AI 大模型设备折腾笔记:ROG 幻 X 和 4090 扩展坞

为了本地测试和开发更丝滑&#xff0c;最近入手了一套新设备 ROG 幻 X Z13 和 ROG XG Mobile 4090 扩展坞。 基于这套设备&#xff0c;我搭了一套 Windows x WSL2 x CUDA 的开发环境。分享一下折腾记录&#xff0c;或许对有类似需求的你也有帮助。 写在前面 最近因为各种事情…

学习web前端三大件之HTML篇

HTML的全称为超文本标记语言&#xff0c;是一种标记语言。它包括一系列标签&#xff0c;通过这些标签可以将网络上的文档格式统一&#xff0c;使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本&#xff0c;HTML命令可以说明文字&#xff0c;图形…

单链表习题——快慢指针类习题详解!(2)

前言&#xff1a; 正如标题所言&#xff0c;小编今天要讲述快慢指针的相关习题&#xff0c;可能有些读者朋友会有些疑问了&#xff0c;这快慢指针是个什么东西&#xff1f;不要着急&#xff0c;下面紧跟小编的步伐&#xff0c;开启我们今天的快慢指针之旅&#xff01; 目录&…

安全基础学习-CRC理解与计算

由于一些任务要求需要了解CRC校验&#xff0c;于是来学习一下。 新人学习&#xff0c;大佬绕路。 前言 CRC即循环冗余校验码&#xff1a;是数据通信领域中最常用的一种查错校验码&#xff0c;其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查&#xff08;CRC&…

Seata 入门与实战

一、什么是 Seata Seata 是一款开源的分布式事务解决方式&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站式的分布式事务解决方案。 二、Seata 组成 事务协调者&#xff08;Transacti…

Potree点云可视化库在Vue项目中的应用

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 Potree点云可视化库在Vue项目中的应用 应用场景介绍 Potree是一个用于大规模点云渲染和交互的开源JavaScript库。它提供了高效的点云可视化和处理功能&#xff0c;广泛应用于地理信息系统&#xff08;GIS&…

整理几个常用的Linux命令(Centos发行版)

如果工作中需要经常整理一些文档&#xff0c;需要汇总一下&#xff0c;现有的服务器资源信息&#xff0c;那么这篇文章适合你&#xff1b; 如果你是一名开发者&#xff0c;需要经常登录服务器&#xff0c;排查应用的出现的一些问题&#xff0c;那么这篇文章适合你&#xff1b;…