SCAU18709魔法

18709 魔法 时间限制:1000MS 代码长度限制:10KB 提交次数:0 通过次数:0

题型: 编程题 语言: 不限定 Description
农夫约翰的奶牛场有很多奶牛,奶牛有黑白两种颜色。现在奶牛们排成整齐的一列去参加镇上的游行活动。
约翰希望白色奶牛都排在前面,黑色的奶牛都排在后面。但现在队列中奶牛的颜色是混乱的,并且奶牛们都不愿意改变位置。
幸运的是,约翰有一根魔法棒,每挥舞一次魔法棒就可以改变一头奶牛的颜色。
请问,约翰至少要挥舞多少次魔法棒,才能将队列改成他希望的状态。注意,可以将所有的奶牛都变成白色,或者都变成黑色。

输入格式
第一行一个正整数n,表示奶牛的头数。(1<=n<=200000)。
第二行n个正整数,均为1或2,1表示白色奶牛,2表示黑色奶牛。

输出格式
一个正整数,表示挥舞魔法棒的最少次数。

输入样例
7
2 2 1 1 1 2 1

输出样例 3

提示 可以把1和2号奶牛变成1,7号奶牛变成2,或者全部奶牛变成1,最少需要3次。

解题思路:这道题,之前看过别人的也没咋看懂,今天,终于看懂了!!!谢天谢地,就是一个你不断找一个位置,把前面的黑牛变成白牛,把白牛变成黑牛的一个过程,但是你不知道哪个位置最小,所以借助bl[]数组,用来统计某个位置前面的黑牛个数,以及wh[]用来统计该位置后面的白牛个数,然后该位置上的挥棒次数就是前面黑牛的个数加后面白牛的个数,然后计算最小
例子:2 2 1 1 1 2 1
bl[] 0 1 2 2 2 2 3
wh[] 4 4 3 2 1 1 0
sum 4 5 5 4 3 3 3

#include <iostream>
#include<cmath>
#include<cstdio>
#include<set>
#include<string>
#include<cstring>
int main()
{int n,i;scanf("%d",&n);int a[n],bl[n],wh[n];//计算后面有的白羊,前面黑羊的数量for(i=0;i<n;i++){scanf("%d",&a[i]);bl[i]=0;wh[i]=0;}int c=0,b=0;for(i=0;i<n;i++){bl[i]=c;if(a[i]==2)c++;}for(i=n-1;i>=0;i--){wh[i]=b;if(a[i]==1)b++;}int mmin=bl[0]+wh[0];//最小挥棒次数
for(i=1;i<n;i++)
{if(wh[i]+bl[i]<mmin)mmin=wh[i]+bl[i];
}printf("%d",mmin);
}

SCAU18709魔法相关推荐

  1. python常用魔法函数

    1.__init__(): 所有类的超类object,有一个默认包含pass的__init__()实现,这个函数会在对象初始化的时候调用,我们可以选择实现,也可以选择不实现,一般建议是实现的,不实现对 ...

  2. [JS]题解 | #魔法数字#

    题解 | #魔法数字# 题目链接 魔法数字 题目描述 牛妹给牛牛写了一个数字n,然后又给自己写了一个数字m,她希望牛牛能执行最少的操作将他的数字转化成自己的. 操作共有三种,如下: 在当前数字的基础上 ...

  3. 喵哈哈村的魔法考试 Round #1 (Div.2) 题解源码(A.水+暴力,B.dp+栈)

    A.喵哈哈村的魔法石 发布时间: 2017年2月21日 20:05   最后更新: 2017年2月21日 20:06   时间限制: 1000ms   内存限制: 128M 描述 传说喵哈哈村有三种神 ...

  4. Houdini魔法特效制作学习教程

    大小解压后:12.1G 1920X1080 mp4 语言:英语+中英文字幕 Houdini已经成为特效行业的热门工具. 谁运用它的力量,谁就势不可挡. 魔法咒语.科幻盾牌和电磁脉冲冲击波.掌握特效的艺 ...

  5. 魔法引用函数magic_quotes_gpc和magic_quotes_runtime的区别和用法

    PHP提供两个方便我们引用数据的魔法引用函数magic_quotes_gpc和magic_quotes_runtime, 这两个函数如果在php.ini设置为ON的时候,就会为我们引用的数据碰到单引号 ...

  6. python神秘的魔法函数_Python魔法函数

    1.什么是魔法函数 魔法函数即Python类中以__(双下划线)开头,以__(双下划线)结尾的函数,Python提供的函数,可让咱们随意定义类的特性 示例: class Company(object) ...

  7. 刻意练习:Python基础 -- Task11. 魔法方法

    背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...

  8. 技术图文:Python魔法方法之属性访问详解

    背景 今天在B站学习"零基础入门学习 Python"中的第45节"魔法方法:属性访问",这也是我们组织的 Python基础刻意练习活动 的学习任务,其中有这样的 ...

  9. 前端魔法堂——异常不仅仅是try/catch

    前言  编程时我们往往拿到的是业务流程正确的业务说明文档或规范,但实际开发中却布满荆棘和例外情况,而这些例外中包含业务用例的例外,也包含技术上的例外.对于业务用例的例外我们别无它法,必须要求实施人员与 ...

最新文章

  1. 征途单机版场景服务器端口被占用,模拟城市5解决端口被占用的方法
  2. InnoDB: Error: log file .\ib_logfile0 is of different size 0 10485760 bytes
  3. 考前自学系列·计算机组成原理·不同形式的机器数的取值范围
  4. 组件化的css-module
  5. 浅谈 RocketMQ、Kafka、Pulsar 的事务消息
  6. 如何用css和HTML结合画熊,结合伪元素实现的纯CSS3高级图形绘制
  7. 【计算机网络复习 数据链路层】3.6.5 PPP、HDLC
  8. 安装Linux系统的一些问题记载
  9. 计算机原理课 如何在中小学课堂中变成有趣,在课堂中如何发挥电教辅助教学优势...
  10. mysql数据库在linux下的导出和导入及每天的备份
  11. Delphi版 ArcEngine Mapcontrol与PageControl同步
  12. echarts 获取点击的y轴数值_ECharts关系图
  13. 三年经验前端社招面经——朴朴科技
  14. TeamViewer(TV)锁屏后黑屏无法远程的解决方法
  15. 计算机网络 如何算 子网号,计算机网络的划分以及主机号子网号的计算方法
  16. 微型计算机nuc 6i5syk,Intel Skylake NUC迷你机性能实测:15W的神器
  17. Spring JMS 整合Weblogic JMS(weblogicMQ)
  18. 新买的键盘部分按键不好使失灵
  19. python四种方式打印九九乘法表
  20. 协程 进程_进程,线程,协程的关系

热门文章

  1. android 2d动画制作,2D游戏动画生成软件(Atlas Tool)
  2. 版本控制系统工作模式_繁星漫天_新浪博客
  3. D3基本图表绘制——折线图
  4. Java、JSP基于WEB的师生互动系统
  5. (MATLAB)多个Excel表合成一个
  6. python 实现自动化办公 人工统计考勤与电脑匹配
  7. 浅析产品新手引导设计
  8. C语言实现实数和复数矩阵及其各种运算(二)
  9. TM1638芯片 LED数码管驱动器 详细介绍
  10. MOS管的各项参数解释