SCAU18709魔法
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魔法相关推荐
- python常用魔法函数
1.__init__(): 所有类的超类object,有一个默认包含pass的__init__()实现,这个函数会在对象初始化的时候调用,我们可以选择实现,也可以选择不实现,一般建议是实现的,不实现对 ...
- [JS]题解 | #魔法数字#
题解 | #魔法数字# 题目链接 魔法数字 题目描述 牛妹给牛牛写了一个数字n,然后又给自己写了一个数字m,她希望牛牛能执行最少的操作将他的数字转化成自己的. 操作共有三种,如下: 在当前数字的基础上 ...
- 喵哈哈村的魔法考试 Round #1 (Div.2) 题解源码(A.水+暴力,B.dp+栈)
A.喵哈哈村的魔法石 发布时间: 2017年2月21日 20:05 最后更新: 2017年2月21日 20:06 时间限制: 1000ms 内存限制: 128M 描述 传说喵哈哈村有三种神 ...
- Houdini魔法特效制作学习教程
大小解压后:12.1G 1920X1080 mp4 语言:英语+中英文字幕 Houdini已经成为特效行业的热门工具. 谁运用它的力量,谁就势不可挡. 魔法咒语.科幻盾牌和电磁脉冲冲击波.掌握特效的艺 ...
- 魔法引用函数magic_quotes_gpc和magic_quotes_runtime的区别和用法
PHP提供两个方便我们引用数据的魔法引用函数magic_quotes_gpc和magic_quotes_runtime, 这两个函数如果在php.ini设置为ON的时候,就会为我们引用的数据碰到单引号 ...
- python神秘的魔法函数_Python魔法函数
1.什么是魔法函数 魔法函数即Python类中以__(双下划线)开头,以__(双下划线)结尾的函数,Python提供的函数,可让咱们随意定义类的特性 示例: class Company(object) ...
- 刻意练习:Python基础 -- Task11. 魔法方法
背景 我们准备利用17天时间,将 "Python基础的刻意练习" 分为如下任务: Task01:变量.运算符与数据类型(1day) Task02:条件与循环(1day) Task0 ...
- 技术图文:Python魔法方法之属性访问详解
背景 今天在B站学习"零基础入门学习 Python"中的第45节"魔法方法:属性访问",这也是我们组织的 Python基础刻意练习活动 的学习任务,其中有这样的 ...
- 前端魔法堂——异常不仅仅是try/catch
前言 编程时我们往往拿到的是业务流程正确的业务说明文档或规范,但实际开发中却布满荆棘和例外情况,而这些例外中包含业务用例的例外,也包含技术上的例外.对于业务用例的例外我们别无它法,必须要求实施人员与 ...
最新文章
- 征途单机版场景服务器端口被占用,模拟城市5解决端口被占用的方法
- InnoDB: Error: log file .\ib_logfile0 is of different size 0 10485760 bytes
- 考前自学系列·计算机组成原理·不同形式的机器数的取值范围
- 组件化的css-module
- 浅谈 RocketMQ、Kafka、Pulsar 的事务消息
- 如何用css和HTML结合画熊,结合伪元素实现的纯CSS3高级图形绘制
- 【计算机网络复习 数据链路层】3.6.5 PPP、HDLC
- 安装Linux系统的一些问题记载
- 计算机原理课 如何在中小学课堂中变成有趣,在课堂中如何发挥电教辅助教学优势...
- mysql数据库在linux下的导出和导入及每天的备份
- Delphi版 ArcEngine Mapcontrol与PageControl同步
- echarts 获取点击的y轴数值_ECharts关系图
- 三年经验前端社招面经——朴朴科技
- TeamViewer(TV)锁屏后黑屏无法远程的解决方法
- 计算机网络 如何算 子网号,计算机网络的划分以及主机号子网号的计算方法
- 微型计算机nuc 6i5syk,Intel Skylake NUC迷你机性能实测:15W的神器
- Spring JMS 整合Weblogic JMS(weblogicMQ)
- 新买的键盘部分按键不好使失灵
- python四种方式打印九九乘法表
- 协程 进程_进程,线程,协程的关系