【程序设计训练】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 疫情期间 的相关文章

  • C# 中两种不同类型的列表

    我目前在为客户提供购物车时遇到问题 他希望能够在 CartItems 之间添加文本 所以我想知道是否有某种方法仍然只有一个列表 我的解决方案是有两个列表 其中一个是 IList 类型 在计算购物车的重量和总体价格时会迭代 而另一个 ILis
  • C# 锁(mylocker) 不起作用

    我有很多 Web 服务调用 异步 在回调中 我会将结果绘制到 Excel 中 我想同步绘图方法 所以我使用以下内容 但是 从我在 Visual Studio 中追踪到 每次 lock locker 都会成功 并且有许多线程运行clearco
  • MigraDoc 项目符号列表(漏洞)

    在我的解决方案中 我在 PDF 文件中使用项目符号列表 它看起来像这样 Solcellepaneler kr ver hverken autoriseret service eller tidskr vende vedligehold So
  • 确保 unsigned int/long 始终在 C# 中的检查上下文中执行

    有没有人觉得奇怪 uint 和 ulong 的默认上下文是未检查的 而不是检查的 因为它们旨在表示永远不能为负的值 因此 如果某些代码试图违反该约束 在我看来 自然且首选的行为是抛出异常 而不是返回最大值 这很容易使重要数据处于无效状态并且
  • Debug.WriteLine() 未命中

    我正在调试 Windows 服务 通过点击F5在 Visual Studio 2010 中 使用以下代码 In 程序 cs file static void Main if Environment UserInteractive We ar
  • 如何在Qt3D中优化点云渲染

    我正在尝试使用 Qt3D 显示大型点云 20M pts 我第一次发现这个图书馆https github com MASKOR Qt3DPointcloudRenderer https github com MASKOR Qt3DPointc
  • “已经有一个与此命令关联的打开的 DataReader,必须先将其关闭。”

    我正在开发需要连接到另一个数据库以获取一些数据的应用程序 为此 我决定使用 SqlConnection reader 等 我需要执行一些查询 例如首先我需要获取某个用户的卡 ID 之后我需要通过该卡 ID 获取一些数据 这是我的代码 reg
  • Apple IOS 上的 C# 应用程序 [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有基于 C Net 的应用程序 有什么方法可以在 Apple IOS 上运行这些应用程序吗 我没有资
  • 使用 OpenSSL 库在 C++ 中生成 SHA 哈希值

    如何使用以下命令生成 SHA1 或 SHA2 哈希值OpenSSL https openssl org图书馆 我搜索了谷歌 找不到任何函数或示例代码 从命令行来看 很简单 printf compute sha1 openssl sha1 您
  • OpenMP 和 C++:this 指针

    Is thisOpenMP 中始终共享指针 尽管编译器不会抱怨以下代码default none pragma omp parallel for default none shared n for SInt i 0 i lt n i f i
  • vs2010 c++ 通过debug查看指针内容

    我正在使用 Vs2010 c 处理 2D 数组 我从一维指针开始 并使用操作 如下 class CMatrix void clear public int nRows int nCols short MyMat CMatrix CMatri
  • C# 的 user32 和内核方法列表 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有一个很好的清单来说明我们可以从中进口什么user32 dll and kernel dll并在 C 中使用 我是 Windows A
  • 如何在PropertyGrid中自定义绘制GridItem?

    我想以与所有者在 ListView 详细信息 和其他控件中绘制项目类似的方式在 PropertyGrid 中绘制属性值 如果将属性声明为 Color 类型 则其值将使用字符串描述旁边的颜色样本来绘制 如果属性是图像类型 则在字符串描述旁边绘
  • XSD、泛型和 C# 类的困境

    我有以下简单的 XSD 文件
  • 如何获取数字列的确切类型,包括。规模和精度?

    有没有办法知道列中列的确切类型DataTable 现在我正在这样做 DataTable st dataReader GetSchemaTable foreach DataColumn col in st Columns var type c
  • 通过开源 PCL 使用 API 查看 3D 点云

    我使用 ToF 飞行时间 相机来获取 XYZ 格式的深度数据 为了实现 3D 点云的可视化目的 我想使用开源 PCL 提供的 API 网址为http pointclouds org documentation tutorials pcl v
  • 如何重写(重新实现)QFileSystemModel 中的成员函数

    我已经为此苦苦挣扎了一段时间 Qt s QFileSystemModel由于图标获取算法非常糟糕 在获取数百个文件时速度非常慢 我想完全禁用图标 它们被提取到QFileSystemModel data方法不是虚拟的 QFileSystemM
  • Opencv 对象检测:ORB GPU 检测器和 SURF GPU 描述符提取器

    我只是做了一个小实验来尝试不同的检测器 描述符组合 我的代码使用 ORB GPU 检测器来检测特征 并使用 SURF GPU 描述符来计算描述符 我使用 BruteForceMatcher GPU 来匹配描述符 并使用 knnMatch 方
  • 错误:C# 尝试读取或写入受保护的内存

    我很难纠正这个错误 该应用程序在 4 台不同的机器上进行了测试 在其中 3 台上运行良好 但一台 Vista PC 在尝试通过 WebBrowser1 打开页面时出现此错误 解决这个问题的任何帮助对我都会非常有帮助 System Acces
  • Eclipse CDT C/C++:包含另一个项目的头文件

    我在 Eclipse CDT 中有两个 C 项目main and shared In shared我有一个名为calc h 我想在中使用这个标头main 所以我做了以下事情 added include calc h到相关文件main In

随机推荐

  • 如何从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 天可以有以下四种情况之一 该天健身