题解:ABC320C - Slot Strategy 2 (Easy)

题解:ABC320C - Slot Strategy 2 (Easy)

·题目

链接:Atcoder。

链接:洛谷。

·难度

算法难度:C。

思维难度:C。

调码难度:B。

综合评价:普及-。

·算法

枚举+模拟。

·思路

先遍历最后每个转盘上的数,如果这个数(记作i)分别在a、b、c中出现过就说明最后有可能是这个数。接下来遍历每一秒按照优先级,优先级高的如果还没有停止转动并且现在停止显示数字正好为i,就停止他,否则看下一个(优先级次高的)。优先级直接复制粘贴6个循环。

·代价

O(m),其他的遍历全是常数,只有对于每种情况答案的遍历最坏情况下为3m。

·细节

求答案的循环里判断出口用“三个转盘是否都停止了”来判断。

·代码

#include<bits/stdc++.h>
using namespace std;
string a="",b="",c="";
int m=0;
bool x[10]={},y[10]={},z[10]={};
int main(){scanf("%d",&m);cin>>a>>b>>c;for(int i=0;i<m;i++){x[a[i]-'0']=true;y[b[i]-'0']=true;z[c[i]-'0']=true;}//输入,并记录每个数在相应转盘上是否出现int tans=1<<30;for(int i=0;i<10;i++){if(x[i]==true&&y[i]==true&&z[i]==true){//都出现过,有可能作为最后答案int ans=0;bool f=false,g=false,h=false;//ans:本次所用时间;f、g、h:分别记录每个转盘是否已经停止ans=0;f=false,g=false,h=false;for(int j=0;f==false||g==false||h==false;j++){//遍历每一秒if(a[j%m]==i+'0'&&f==false){f=true;//最高优先级先判断}else if(b[j%m]==i+'0'&&g==false){g=true;//次高}else if(c[j%m]==i+'0'&&h==false){h=true;//最低}ans=j;//更新答案}tans=min(tans,ans);//答案取最优值,后同理ans=0;f=false,g=false,h=false;for(int j=0;f==false||g==false||h==false;j++){if(a[j%m]==i+'0'&&f==false){f=true;}else if(c[j%m]==i+'0'&&h==false){h=true;}else if(b[j%m]==i+'0'&&g==false){g=true;}ans=j;}tans=min(tans,ans);ans=0;f=false,g=false,h=false;for(int j=0;f==false||g==false||h==false;j++){if(c[j%m]==i+'0'&&h==false){h=true;}else if(a[j%m]==i+'0'&&f==false){f=true;}else if(b[j%m]==i+'0'&&g==false){g=true;}ans=j;}tans=min(tans,ans);ans=0;f=false,g=false,h=false;for(int j=0;f==false||g==false||h==false;j++){if(c[j%m]==i+'0'&&h==false){h=true;}else if(b[j%m]==i+'0'&&g==false){g=true;}else if(a[j%m]==i+'0'&&f==false){f=true;}ans=j;}tans=min(tans,ans);ans=0;f=false,g=false,h=false;for(int j=0;f==false||g==false||h==false;j++){if(b[j%m]==i+'0'&&g==false){g=true;}else if(a[j%m]==i+'0'&&f==false){f=true;}else if(c[j%m]==i+'0'&&h==false){h=true;}ans=j;}tans=min(tans,ans);ans=0;f=false,g=false,h=false;for(int j=0;f==false||g==false||h==false;j++){if(b[j%m]==i+'0'&&g==false){g=true;}else if(c[j%m]==i+'0'&&h==false){h=true;}else if(a[j%m]==i+'0'&&f==false){f=true;}ans=j;}tans=min(tans,ans);}}if(tans==1<<30){tans=-1;}//特判没有答案的情况printf("%d\n",tans);return 0;
}

·注意

循环内部要用if{}else if{}else{},否则会出现一秒停多个转盘的情况。

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

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

相关文章

tcp_v4_connect函数的解析

源码&#xff1a; int tcp_v4_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len) {// 解析输入的地址结构struct sockaddr_in *usin (struct sockaddr_in *)uaddr;// 获取 TCP 协议栈的全局 death_row 对象struct inet_timewait_death_row *tcp_death_row;// …

C- ssize_t size_t

size_t 和 ssize_t 都是在 C 和 C 的标准库中定义的数据类型&#xff0c;它们通常用于表示大小和长度。然而&#xff0c;它们有关键的区别。 size_t: 定义&#xff1a;size_t 是一个无符号整数类型&#xff0c;它是适合表示对象的大小的类型。在 POSIX 中&#xff0c;它也用于…

yarn的资源优化的调整参数

yarn的资源优化的调整参数 官网&#xff1a; https://hadoop.apache.org/docs/r3.3.6/hadoop-yarn/hadoop-yarn-common/yarn-default.xml 没事多看官网哈 yarn.nodemanager.resource.memory-mb&#xff1a;用于设置NodeManager节点的总内存容量&#xff0c;单位为MB。根据集…

PostgreSQL缓存管理

缓冲区管理器、存储和后端进程之间的关系 缓存管理结构 PostgreSQL 缓冲区管理器由buffer table、buffer descriptors和buffer pool组成。buffer pool层存储表和索引等数据文件页&#xff0c;以及空闲空间映射和可见性映射。buffer pool是一个数组&#xff0c;每个槽存储数据文…

TensorFlow与pytorch特定版本虚拟环境的安装

TensorFlow与Python的版本对应&#xff0c;注意&#xff0c;一定要选择对应的版本&#xff0c;否则会让你非常痛苦&#xff0c;折腾很久搞不清楚原因。 建议使用国内镜像源安装 没有GPU后缀的就表示是CPU版本的&#xff0c;不加版本就是最新 pip install tensorflow -i https:…

Python 正则表达式匹配特殊字符串

文章目录 匹配特殊的字符串提取特殊的字符串 匹配特殊的字符串 匹配字符串中特定格式的字符串&#xff0c; 在一串字符串中&#xff0c;先找到特殊规则的substring, 然后再提取相关的位置value strings [result-2023-08-18-6g1s1ch-DB9909, result-2023-08-18-4g1s3ch-DB99…

150.逆波兰表达式求值

目录 一、题目 二、分析代码 三、中缀表达式转后缀表达式 一、题目 150. 逆波兰表达式求值 - 力扣&#xff08;LeetCode&#xff09; 二、分析代码 class Solution { public:int evalRPN(vector<string>& tokens) {stack<int>s;for(auto ch:tokens){if(ch!…

【面试刷题】——Qt事件处理器级别的划分

在Qt中&#xff0c;事件处理器&#xff08;Event Handler&#xff09;可以分为不同的级别&#xff0c;以适应不同的需求和场景。以下是Qt事件处理器级别的划分&#xff1a; 应用程序级别事件处理器&#xff1a; 这是最高级别的事件处理器&#xff0c;通常用于处理应用程序范围…

车载软件架构 —— AUTOSAR Vector SIP包(一)

车载软件架构 —— AUTOSAR Vector SIP包(一) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在…

进程程序替换

✅<1>主页&#xff1a;&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;Linux——进程替换 ☂️<3>开发环境&#xff1a;Centos7 &#x1f4ac;<4>前言&#xff1a;我们创建子进程的目的是什么&#xff1f;想让子进程帮我们执行特定的…

Docker搭建ELK日志采集服务及Kibana可视化图表展示

架构 ES docker network create elkmkdir -p /opt/ELK/es/datachmod 777 /opt/ELK/esdocker run -d --name elasticsearch --net elk -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -v /opt/ELK/es/plugins:/usr/share/elasticsearch/plugins -v /opt/…

嵌入式C 语言中的三块技术难点

​ C 语言在嵌入式学习中是必备的知识&#xff0c;甚至大部分操作系统都要围绕 C 语言进行&#xff0c;而其中有三块技术难点&#xff0c;几乎是公认级别的“难啃的硬骨头”。 今天就来带你将这三块硬骨头细细拆解开来&#xff0c;一定让你看明白了。 0x01 指针 指针是公认…

redis实战-redis实现异步秒杀优化

秒杀优化-异步秒杀思路 未优化的思路 当用户发起请求&#xff0c;此时会请求nginx&#xff0c;nginx会访问到tomcat&#xff0c;而tomcat中的程序&#xff0c;会进行串行操作&#xff0c;分成如下几个步骤 1、查询优惠卷 2、判断秒杀库存是否足够 3、查询订单 4、校验是否是一…

关于try..catch..finally..throw

try 每个try块必须与至少一个catch或finally块&#xff0c;否则会抛出SyntaxError错误。 单独使用try块进行验证&#xff1a; try { throw new Error(Error while executing the code); } 1 2 3 ⓧ Uncaught SyntaxError: Missing catch or finally after try 1 try…catch …

大厂超全安全测试--关于安全测试的分类及如何测试

安全测试&#xff08;总结&#xff09; 1.jsonNP劫持 &#xff08;其实json劫持和jsonNP 劫持属于CSRF跨站请求伪造&#xff09;的攻击范畴&#xff0c;解决方法和CSRF一样 定义&#xff1a;构造带有jsonp接口的恶意页面发给用户点击&#xff0c;从而将用户的敏感信息通过js…

Jtti:Ubuntu下如何迁移Thunderbird邮件

要迁移Thunderbird邮件&#xff0c;您需要复制和转移Thunderbird的邮件文件和配置文件。以下是一般的迁移步骤&#xff1a; 注意&#xff1a;在进行迁移之前&#xff0c;请确保Thunderbird已经安装在目标Ubuntu系统上。 备份旧系统的Thunderbird数据&#xff1a; 在源系统上打开…

MySQL——主从复制

简介 在实际的生产中&#xff0c;为了解决Mysql的单点故障已经提高MySQL的整体服务性能&#xff0c;一般都会采用「主从复制」。 主从复制开始前有个前提条件&#xff1a;两边的数据要一样&#xff0c;主必须开启二进制日志 dump thread 线程 基于位置点从是否需要开启二进…

【面试刷题】——什么是面向过程 什么是面向对象

"面向过程"和"面向对象"是两种不同的编程范式&#xff0c;它们描述了程序的设计和组织方式。 面向过程编程&#xff08;Procedural Programming&#xff09;&#xff1a; 面向过程编程是一种以过程或函数为中心的编程范式。在面向过程编程中&#xff0c;…

计算机组成原理——基础入门总结(一)

本帖更新一些关于计算机组成原理的重点内容。由于博主考研时并不会考这门课&#xff0c;但是考虑到操作系统中又很多重要晦涩的概念涉及很多诸如内存、存储器、磁盘、cpu乃至各种寄存器的知识&#xff0c;此处挑选一些核心的内容总结复盘一遍——实现声明&#xff1a;本帖的内容…

Python统计pdf中英文单词的个数

之前的文章提供了批量识别pdf中英文的方法,详见【python爬虫】批量识别pdf中的英文,自动翻译成中文上。以及自动pdf英文转中文文档,详见【python爬虫】批量识别pdf中的英文,自动翻译成中文下。    本文实现python统计pdf中英文字符的个数。 文章目录 一、要统计字符的pdf…