牛妹爱数列_牛客练习赛67

2023-05-16

题目链接:https://ac.nowcoder.com/acm/contest/6885/D

题意

  • 给你一个长度为n的仅包含01的序列a,并执行以下操作
  • 单点修改:0->1 ,1->0
  • 前缀修改:将1~x上的所有点修改
  • 问最少操作,使得序列全变0

思路

  • 简单dp。
  • dp[i][0]表示把1到i的所有点变成0需要的最少操作
  • dp[i][1]表示把1到i的所有点变成1需要的最少操作
  • 转移方程:
  • dp[i][0]=\left\{\begin{matrix} min(dp[i-1][0],dp[i-1][1]+1)&a[i]==0 \\ min(dp[i-1][0],dp[i-1][1]+1)+1 & a[i]==1 \end{matrix}\right.
  • dp[i][1]=\left\{\begin{matrix} min(dp[i-1][0]+1,dp[i-1][1])+1&a[i]==0 \\ min(dp[i-1][0]+1,dp[i-1][1]) & a[i]==1 \end{matrix}\right.
  • 当a[i]==0时,dp[i][0]要么前面全是0(dp[i-1][0]),要么前面都是1,然后前缀修改变成0(dp[i-1][1]+1);dp[i][1]要么前面全是0,前缀修改变成1(dp[i-1][0]+1),要么前面全是1(dp[i-1][1]),最后需要将第i位的0变成1,所以加一
  • 当a[i]==1时,dp[i][0]要么前面全是0(dp[i-1][0]),要么前面都是1,然后前缀修改变成0(dp[i-1][1]+1);最后需要将第i位的1变成0,所以加一;dp[i][1]要么前面全是0,前缀修改变成1(dp[i-1][0]+1),要么前面全是1(dp[i-1][1])

AC代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn = 1e5+5;
int dp[maxn][3];
int a[maxn];
int main(){
    int n;scanf("%d",&n);
    for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    dp[0][0]=dp[0][1]=0;
    for(int i=1;i<=n;i++){
        dp[i][0]=min(dp[i-1][0],dp[i-1][1]+1)+(a[i]==1);
        dp[i][1]=min(dp[i-1][0]+1,dp[i-1][1])+(a[i]==0);
    }
    cout << min(dp[n][0] , dp[n][1] + 1) << endl;
    return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

牛妹爱数列_牛客练习赛67 的相关文章

  • 【算法】欧拉路径的DFS存储顺序

    欧拉路径和欧拉回路 对于无向图 xff0c 所有边都是连通的 xff08 1 xff09 存在欧拉路径的充分必要条件 xff1a 度数为奇数的点只能有0个或2个 xff08 2 xff09 存在欧拉回路的充分必要条件 xff1a 度数为奇数
  • 【算法】二分图的相关性质

    二分图的定义 二分图是指将图中所有点分为两个集合 xff0c 任意一条边对应的两个点都不在同一个集合中 二分图的判定 判定一个图是否为二分图 xff0c 是考虑这个图中是否有奇数环 xff0c 如果不存在奇数环 xff0c 则图为二分图 具
  • 【比赛】LeetCode 2023 春季杯团队赛题解

    A 符文储备 题意 xff1a 给定一个数组 xff0c 问可以从中选择最多多少个连续的数 xff0c 使得这些数排序后 xff0c 相邻两个数的差最多是 1 数据范围 xff1a 1 lt 61 runes length lt 61 10
  • 关于puts和printf区别

    又是HDU2004那题 xff0c 开始是直接暴力if else puts输出的 xff0c 结果发现是 Warning passing argument 1 of 39 puts 39 makes pointer from integer
  • 高精度 求n!

    我们知道 xff0c 阶乘这玩意一般来说 xff0c 很大时可以和次方相提并论 xff0c 所以在计算机中很容易溢出 xff0c 所以对于它 xff0c 只能采用高精度求解 下面我们有两个求法 一 当所求n不大时 xff0c 这里限制范围为
  • 出租车费计算

    题目描述 某市出租车计价规则如下 xff1a 起步4公里10元 xff0c 即使你的行程没超过4公里 xff1b 接下来的4公里 xff0c 每公里2元 xff1b 之后每公里2 4元 行程的最后一段即使不到1公里 xff0c 也当作1公里
  • CSP-A - 咕咕东的奇遇

    题意 小明得到了一个神奇的圆环 这个圆环由字母表组成首尾相接的环 xff0c 环上有一个指针 xff0c 最初指向字母a 小明每次可以顺时针或者逆时针旋转一格 例如 xff0c a顺时针旋转到z xff0c 逆时针旋转到b 小明手里有一个字
  • week-4-C-TT的神秘礼物(二分答案)

    题意 TT 是一位重度爱猫人士 xff0c 每日沉溺于 B 站上的猫咪频道 有一天 xff0c TT 的好友 ZJM 决定交给 TT 一个难题 xff0c 如果 TT 能够解决这个难题 xff0c ZJM 就会买一只可爱猫咪送给 TT 任务
  • ITK(Insight Tool Kit) 医疗影像数据后处理软件模块使用和算法02

    上节说到如何在windows xff08 10 xff09 的VS xff08 2017 xff09 平台下导入ITK的library xff0c 这次咱们开始说一下咱们一开始最关心的内容 xff0c 如何用ITK来做3D图像 xff08
  • windows10 64位下tensorflow 3.6+cuda 9.0 +cudnn 9.0安装过程与踩过的雷

    在昨天之前 xff0c 我甚至还不知道GPU运行tf程序到底长啥样 xff0c 就在昨晚我开始尝试了 那么问题来了 如何在windows系统下安装tf并且成功运行呢 xff1f 我先说说大致过程 xff0c 然后吐槽下我遇到的一些坑 第一步
  • 相机校参及C-arm校参 07 - 根据2D图像计算相机的相对位姿

    已知条件为 xff1a 1 calibrated camera 校准后相机的intrisic parameters xff08 K xff09 2 Model geometry 模型中特征点 xff08 有些文献中成为标记物Tag xff0
  • Parallel Platform (Stewart Platform) 类型机械臂的正逆解 01

    并联机器人相对于串联机器人有着不同的应用场景 本文主要是基于并联机械臂的基础控制算法做一些阐述 对于机械臂的架构通讯方式 xff08 RS232 RS485 Canbus Modbus xff09 xff0c 结构设计 xff08 球关节
  • 外科手术器械设计 超声刀设计思路和原理 - 01

    换能器设计和控制是超声刀设计最重要的环节之一 xff0c 内容也比较庞大 xff0c 打算分几个章节慢慢的写 xff0c 顺便在回顾一下之前的设计测试过程 比较喜欢挑战难度从高到低 xff0c 本人硬件EE背景比较薄弱 xff0c 所以我可
  • 外科手术器械设计 超声刀设计思路和原理 - 02

    接着上文 xff0c 对于自动跟踪谐振频率的超声刀控制反馈电路做了简单的介绍 xff0c 该方式非常适合无线超声刀 xff08 无主机系统 xff09 xff0c 一方面减少了元器件的数量降低了成本 并且减少了整个handpiece的重量
  • 外科手术器械设计 超声刀设计思路和原理 - 03

    超声刀的原理通过高频的机械振动产生组织细胞内的空化效应 xff0c 相当于内爆吧 xff0c 从而达到在切割组织的同时又有凝闭血管的效果 而如何产生这类高频的机械振动呢 xff1f 换能器的核心还是压电陶瓷 xff0c 原理机制比较复杂的一
  • 外科手术器械设计 超声刀设计思路和原理 - 04

    根据上文牛顿第二定律的谐振频率模型可以得到 xff1a 又有 xff0c 在无阻尼和无外力的情况下 xff0c 可简化为 xff1a 根据简谐振动的情况 xff0c 里面的t可以用x代替 xff1b 根据二阶齐次微分方程的通解可以求得振速
  • 基于ROS机器人项目开发从零开始 (ros topic, service, msg, srv, launch, oop等基础概念) - 02

    上一节已经给大家介绍了ROS这个多功能的操作系统的概念 xff0c 和在机器人开发中可以基于我们的帮助 那么这一篇我们继续来讲ROS当中最重要的几个概念 topic service msg srv 和 OOP xff08 基于对象编程 xf
  • 基于ROS机器人项目开发基础概念 (Service,消息类型srv&msg) - 03

    上文已经介绍了ros topic的基本概念信息 在这篇文章中将介绍ros service lt server client模型 gt xff0c 和ROS中的数据类型 xff0c msg和srv 1 ROS Service Service和
  • VS2017+QT5.9 QT5.9基础大全 医疗图像处理界面设计

    包含Qt5 9所有基本控件的操作 xff0c 信号和槽函数 xff0c 和QSS样式 后面将利用Qt5 9和MITK或者MTK库做一个医疗图像处理APP 1 Signal and slot 2 QWidget基类 2 1 QRect 常用于
  • VS2017+QT5.9 QT5.9基础大全 医疗图像处理界面设计 VTK视觉显示 - 02

    1 VTK 和 ITK 之间已经写过两篇ITK相关的内容 xff0c 此次是想模仿一款图像处理软件 比如Slicer xff0c Radint xff0c 或者ITK Snap VTK和ITK的库都是基于OpenGL xff0c VTK的库

随机推荐