【程序设计训练】4-12 疫情期间

2023-11-07

问题描述

正值新冠疫情期间,阿迪没法返回学校学习,他希望通过参加一些比赛来提高一下编程技能,同时做做运动。他收集了接下来的 n 天里每一天的信息,包括健身房是否开放,或者互联网上是否有程序设计竞赛。

i 天可以有以下四种情况之一:

  • 该天健身房不开放,互联网上也没有竞赛
  • 该天健身房不开放,但互联网上有竞赛
  • 该天健身房开放,但互联网上没有竞赛
  • 该天健身房开放,互联网上也有竞赛

每天阿迪要么休息,要么编写程序(如果该天有竞赛),要么做运动(如果该天健身房开放)。

现在有一个限制条件:不能连续两天都去做运动,或者连续两天都编写程序。阿迪对自己要求很高,希望尽量多写程序或者多做运动,使得休息的天数尽量最少,求出这个天数。

输入形式

输入的第一行为一个正整数 n (1≤ n ≤ 100),表示接下来的天数。

​第二行为一个用空格分隔的整数序列 a 1、a 2、…、a n(0≤ a i≤3),这里

  • ai=0,第 i 天健身房不开放,互联网上也没有竞赛
  • ai=1,第 i 天健身房不开放,但互联网上有竞赛
  • ai=2,第 i 天健身房开放,但互联网上没有竞赛
  • ai=3,第 i 天健身房开放,互联网上也有竞赛

输出形式

输入阿迪可能休息的最小天数。注意限制条件:

  • 不能连续两天去做运动
  • 不能连续两天编写程序

样例输入

4
1 3 2 0

样例输出

2

参考代码

#include<bits/stdc++.h>
using namespace std;
int main() {
	int n;
	cin>>n;
	int day[n];//ai
	for(int i=0; i<n; i++) {
		cin>>day[i];
	}
	int dp[n][3];//0编程 1运动 2休息,dp[i][j]表示第i+1天(dp[0]表示第1天)为j状态,此时休息的最少天数
	for(int i=0; i<n; i++)
		for(int j=0; j<3; j++)dp[i][j]=INT_MAX;

	if(day[0]==1)dp[0][0]=0;//若第1天编程,休息0天
	if(day[0]==2)dp[0][1]=0;//若第1天运动,休息0天
	if(day[0]==3) {//若第1天编程或运动
		dp[0][1]=0;//选编程,休息0天
		dp[0][0]=0;//选运动,休息0天
	}
	dp[0][2]=1;//若第1天休息,休息1天

	for(int i=1; i<n; i++) {
		if(day[i]==1)dp[i][0]=min(dp[i-1][1],dp[i-1][2]);//若编程,则上一天只能运动或休息
		if(day[i]==2)dp[i][1]=min(dp[i-1][0],dp[i-1][2]);//若运动,则上一天只能编程或休息
		if(day[i]==3) {//若编程或运动
			dp[i][0]=min(dp[i-1][1],dp[i-1][2]);//选编程
			dp[i][1]=min(dp[i-1][0],dp[i-1][2]);//选运动
		}
		dp[i][2]=min(dp[i-1][0],min(dp[i-1][1],dp[i-1][2]))+1;//若休息,则上一天三者均可
	}
	int result=min(dp[n-1][0],min(dp[n-1][1],dp[n-1][2]));//结果为最后一天三种状态的最小值
	cout<<result;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【程序设计训练】4-12 疫情期间 的相关文章

  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 如何从shutterstock下载无水印图片

    shutterstock是一个高质量的创意图片素材库 但是下载的话需要付费 而且价格不菲 预览的话带水印 基本不能用 那还有没有办法优雅地薅帝国主义羊毛 答案肯定是有 而且很容易 首先找到你想要的图片链接 以 https www shutt
  • 51单片机串口

    51单片机串口 1 串口通信 1 1串口接线方式 RXD 数据输入引脚 数据接受 STC89系列对应P3 0口 上官一号有单独引出 TXD 数据发送引脚 数据发送 STC89系列对应P3 1口 上官一号有单独引出 接线方式 外链图片转存失败
  • 高速铁路GNSS位移变形监测预警系统解决方案

    一 方案背景 随着国内高速铁路网的不断扩展和完善以及市政工程的快速发展 两者相互交叉的工程越来越多 运营的高速铁路对线路的平顺性要求非常高 下穿工程的安全 设计和施工要求高 难度大 在高速铁路滑坡 路桥下施工时会对高速铁路运营产生诸多不利影
  • Could not load library cudnn_cnn_infer64_8.dll. Error code 193

    是 cudnn 版本问题 原来安装了 8 4 0 27 版本太高了 下载了 cudnn 11 4 windows x64 v8 2 4 15 zip 解压到 cuda 对应的文件夹 运行成功 下载地址 https developer nvi
  • centos7服务器环境搭建记录

    这个月换了工作 公司配的电脑没有到货 让玩服务器 新工作的第一份任务就是的搭建开发环境配置服务器 作为一个资深高级java开发 自然不会被这个难倒 很早以前就玩过服务器 早几天面试之前还在虚拟机上搭建了redis kafka集群 况且还有万
  • 【QT 基础教程 十】QMap类详解

    概要 本期主要讲解Qt中QMap类的常用接口 一 简介 1 头文件 include
  • MySQL 加锁处理分析

    背景 MySQL InnoDB的加锁分析 一直是一个比较困难的话题 我在工作过程中 经常会有同事咨询这方面的问题 同时 微博上也经常会收到MySQL锁相关的私信 让我帮助解决一些死锁的问题 本文 准备就MySQL InnoDB的加锁问题 展
  • 2021-03-07

    关于射线批处理 RayCastCommand 使用 前言 API 用于实际解决问题中 批处理射线较为实用 数量大间隔大的使用较为轻松对于性能提升有较高的帮助 相对于射击功能 指定抓点功能等需要减少计算 对于性能消耗对比可见效果比较大 pri
  • 使用线程锁(Lock)实现线程同步

    任务描述 本关任务 使用Lock 实现对于某一块代码的互斥访问 相关知识 上一关我们谈到了synchronized关键字 synchronized关键字主要用来同步代码 实现同步互斥访问 也就是在同一时刻只能有一个线程访问临界资源 从而解决
  • cocos creator action之jumpTo、jumpBy

    cocos creator中 jumpTo jumpBy的使用方法例子 cc Class extends cc Component properties move cc Node start this moveT moveT this mo
  • 使用faceswap进行视频换脸操作

    一 下载源码安装环境 开源csdn代码下载地址 https codechina csdn net mirrors deepfakes faceswap Github下载地址 https github com deepfakes facesw
  • 解决OCFS2的o2net_connect_expired问题

    接上次的文章 在修改 etc sysconfig o2cb的配置后 发现两机器只有一台可以自动挂载ocfs2分区 而另外一台不能自动挂载 但启动完毕后 手动挂载正常 一 详细情况两机器分别是dbsrv 1和dbsrv 2 使用交叉线做网络心
  • 一文1800字从0到1使用Python Flask实战构建Web应用

    Python Flask是一个轻量级的Web框架 它简单易用 灵活性高 适用于构建各种规模的Web应用 本文将介绍如何使用Python Flask框架来实战构建一个简单的Web应用 并展示其基本功能和特性 第一部分 搭建开发环境 在开始之前
  • 如何在DOS下以管理员身份执行命令?

    原创 普通User的DOS窗口 以管理员身份运行的DOS窗口 转换 Windows10系统下 13 11 55 2018 10 18 转载于 https www cnblogs com chiweiming p 9809904 html
  • TP5 查询一个字段不等于多个值where的用法

    组装where条件 wheres 后台人员类型 people input people switch people case 业务员 wheres order type neq 等待老大审核 break case 经历 wheres ord
  • 【elasticSearch系】3.完整搭建详尽版elk

    话不多说 我们先看下经典的elk 是由哪些组件搭建组合起来的 elasticSearch和kibana搭建 可以查看之前我搭建elasticsearch和kibana 的这篇文章 logstash搭建 为了和之前我搭建elasticsear
  • 基于SSM+SpringBoot+Thymeleaf+LayUI的高校大学生成绩分析管理系统(附论文)

    项目运行截图 基于 B S 架构的高校成绩分析与管理系统的设计与实现 第一章 绪论 学生的不断增多 学生的考试管理也增大了教师的负担 现社会尚存的系统功能简单 且缺少分析功能导致学生不能及时了解学生成绩趋势 针对相同课程不同专业成绩情况 系
  • oracle 释放过度使用的Undo表空间

    故障现象 UNDO表空间越来越大 长此下去最终数据因为磁盘空间不足而崩溃 问题分析 产生问题的原因主要以下两点 1 有较大的事务量让Oracle Undo自动扩展 产生过度占用磁盘空间的情况 2 有较大事务没有收缩或者没有提交所导制 说 明
  • linux运行directory,我在linux里用命令出来is a directory是怎么回事

    使用的命令应该是针对文件的命令 在使用过程命令中把参数指定成了目录 所以linux报错说 这是一个目录 可以理解为linux在提醒 这是一个目录不是文件 这个命令应该是针对文件的 扩展资料 参数 c 建立一个压缩文件的参数指令 create
  • 【程序设计训练】4-12 疫情期间

    问题描述 正值新冠疫情期间 阿迪没法返回学校学习 他希望通过参加一些比赛来提高一下编程技能 同时做做运动 他收集了接下来的 n 天里每一天的信息 包括健身房是否开放 或者互联网上是否有程序设计竞赛 第 i 天可以有以下四种情况之一 该天健身