当前位置: 首页 > news >正文

CodeForces..学习读书吧.[简单].[条件判断].[找最小值]

题目描述:


 题目解读:

给定一组数,分别是 “时间 内容”,内容分为00,01,10,11四种,求能够得到11的最小时间。


解题思路:

看似00,01,10,11像二进制数,但是用不到相关概念。

其中00是没有价值的,需要分别找到01,10和11的最小时间,然后比较(01+10)和11哪个所需时间更小,然后输出最小。

即先输入字符串s,

如果s[0]=='1'&&s[1]=='0',用min()函数判断是否是10的最小时间

s[0]=='0'&&s[1]=='1',用min()函数判断是否是01的最小时间

s[0]=='1'&&s[1]=='1',用min()函数判断是否是11的最小时间

最后用min()函数输出 01和10的最小时间和11最小时间 的最小值。

如果用来记录01,10的值没有都改变,11的值也未改变,则输出-1。


代码实现:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<iostream>
using namespace std;
void Solve() {int n,time,a = 1e6, b = 1e6, c = 1e6;string s;scanf("%d", &n);for (int i = 0; i < n; i++) {cin>>time>>s;if (s[0] == '1' && s[1] == '0') {a = min(time, a);}if (s[1] == '1' && s[0] == '0') {b = min(time, b);}if (s[0] == '1' && s[1] == '1') {c = min(time, c);}}if (a != 1e6 && b != 1e6 || c!= 1e6) {printf("%d\n",min(a+b,c));}else { puts( "-1\n" ); }return;
}int main() {int t;scanf("%d", &t);while (t--) Solve();return 0;
}

遇到的错误:

http://www.lryc.cn/news/89564.html

相关文章:

  • 灵活使用Postman环境变量和全局变量,提高接口测试效率!
  • Springboot+Vue3 整合海康获取视频流并展示
  • Linux——进程退出
  • 组长给组员派活,把组长自己的需求和要改的bug派给组员,合理吗?
  • Spring注解开发——bean的作用范围与生命周期管理
  • C++ > Cmake
  • Spring的Bean的生命周期
  • 在树莓派上搭建WordPress博客网站,并内网穿透发布到公网
  • 跨平台C++ Qt数据库管理系统设计与实战:从理论到实践的全面解析
  • Ubuntu crontab定时任务
  • ChatGPT Prompt Engineering for Developers 大语言模型引导词指导手册
  • 【Vue】二:Vue核心处理---模板语法
  • windows环境下nginx+ftp服务器搭建简易文件服务器
  • 【数据结构与算法】图的概述(内含源码)
  • SAP MM 根据采购订单反查采购申请
  • C语言程序设计题/C语言计算机二级考前押题版
  • Canonical标签在SEO中重要作用
  • 【Linux之进程间通信】06.Linux进程通信 - 共享内存
  • oracle安装
  • CSS样式的三种引入方式及优先级
  • Linux第二天
  • 微服务和领域驱动
  • Redis如何做到内存高效利用?过期key删除术解析!
  • EFDC模型教程
  • URLConnection(三)
  • 针对KF状态估计的电力系统虚假数据注入攻击研究(Matlab代码实现)
  • 2023-05-25 LeetCode每日一题(差值数组不同的字符串)
  • MI小米验厂知识点
  • 损失函数——交叉熵损失(Cross-entropy loss)
  • 电商ERP接口erp进销存接口