CSP201509-1:数组分段
引言:CSP(http://www.cspro.org/lead/application/ccf/login.jsp)是由中国计算机学会(CCF)发起的“计算机职业资格认证”考试,针对计算机软件开发、软件测试、信息管理等领域的专业人士进行能力认证。认证对象是从事或将要从事IT领域专业技术与技术管理人员,以及高校招考研究生的复试对象。
l 问题描述
给定一个整数数列,数列中连续相同的最长整数序列算成一段,问数列中共有多少段?
l 输入格式
输入的第一行包含一个整数n,表示数列中整数的个数。
第二行包含n个整数a1, a2, …, an,表示给定的数列,相邻的整数之间用一个空格分隔。
l 输出格式
输出一个整数,表示给定的数列有多个段。
l 样例输入
8
8 8 8 0 12 12 8 0
l 样例输出
5
l 样例说明
8 8 8是第一段,0是第二段,12 12是第三段,倒数第二个整数8是第四段,最后一个0是第五段。
l 评测用例规模与约定
1 ≤ n ≤ 1000,0 ≤ ai ≤ 1000。
l 源代码
|
# include <stdio.h> # include <stdlib.h> # include <memory.h> int main(void) { int n; //个数 int result = 0; int currentNum = -1; scanf("%d", &n); int *input = (int *)malloc(sizeof(int) * n); memset(input, 0, sizeof(int) * n); for (int i = 0; i < n ; i++) { scanf("%d", input+i); } for (int i = 0; i < n; i++) { if (currentNum != input[i]) { currentNum = input[i]; result += 1; } } printf("%d\n", result); free(input); return 0; } |
CSP201509-1:数组分段的更多相关文章
- Ubuntu的多文件编译以及c语言的数组、函数
闲言少叙,直接切入主题. 一.Linux下的多文件编译(Ubuntu系统). 对于小程序来说,往往一个.c文件就足够了,里面包含了各种主函数和功能函数,以及函数的声明等等.但是这样的弊端主要有两点,一 ...
- 后缀数组 UVA 11107 Life Forms
题目链接 题意:训练指南P223 分析:二分长度,把所有字符串连成一个字符串,中间用不同的字符分隔(这是为了保证匹配长度始终在一个字符串内).height数组分段,vis数组标记哪些字符串被访问了,如 ...
- 后缀数组 POJ 3261 Milk Patterns
题目链接 题意:可重叠的 k 次最长重复子串.给定一个字符串,求至少出现 k 次的最长重复子串,这 k 个子串可以重叠. 分析:与POJ 1743做法类似,先二分答案,height数组分段后统计 LC ...
- 后缀数组 POJ 1743 Musical Theme
题目链接 题意:给定n个数字,求超过5个数字的,最长的,变化相同的,不相交的重复子串 分析:男人8题中的一题!数列相邻两项做差,形成新数列,即求数列中的最长重复子串(不可相交). 后缀数组+二分答案. ...
- POJ 3261 (后缀数组 二分) Milk Patterns
这道题和UVa 12206一样,求至少重复出现k次的最长字串. 首先还是二分最长字串的长度len,然后以len为边界对height数组分段,如果有一段包含超过k个后缀则符合要求. #include & ...
- C语言入门(18)——数组与字符串
用来存放字符量的数组称为字符数组.字符串可以看作一个数组,它的元素是字符型的. 字符数组的定义 形式与前面介绍的数值数组相同.例如: char c[10]; 由于字符型和整型通用,也可以定义为int ...
- hdu_3518_Boring counting(后缀数组)
题目链接:hdu_3518_Boring counting 题意: 给你一个字符串,让你找不重叠且出现大于1次以上的字串个数 题解: 后缀数组height数组的应用,我们枚举字串的长度,然后将heig ...
- C语言数组:C语言数组定义、二维数组、动态数组、字符串数组
1.C语言数组的概念 在<更加优美的C语言输出>一节中我们举了一个例子,是输出一个 4×4 的整数矩阵,代码如下: #include <stdio.h> #include &l ...
- php常用字符串数组函数
Php常用的数组函数 键值操作 Array_values($arr) 获取数据的值 Array_keys($arr) 获取数组的key Array_flip($arr) 数组键值反转 In_array ...
随机推荐
- Visual Studio 2015 Tools for Unity安装
https://blogs.msdn.microsoft.com/visualstudio/tag/visual-studio-tools-for-unity/ 下载对应的VS版本 里边可以找到下载地 ...
- mac install PyQt5
1. install brew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/insta ...
- Selenium处理页面---弹窗、表格、鼠标悬停、frame、下拉框、上传文件
一.Selenium测试-常用页面处理 1.概述 UI自动化测试(GUI界面层):UI层是用户使用产品的入口,所有功能通过这一层提供给用户,测试工作大多集中在这一层,常见的测试工具有UFT.Robot ...
- 涉及JSP、Servlet的页面编码问题
1. JSP页面中,二处的字符编码有何区别 1.<%@ page contentType="text/html;charset=UTF-8" %> 是服务器端java程 ...
- Python Json模块中dumps、loads、dump、load函数介绍哦
来自: https://www.jb51.net/article/139498.htm 1.json.dumps() json.dumps()用于将dict类型的数据转成str,因为如果直 ...
- Oracle单行函数用法
单行函数分为五种类型:字符函数.数值函数.日期函数.转换函数.通用函数. 1.字符函数: 对于输入的字符转换为需要转为的字符或数值. upper()大写 --小写字母转为大写字母 --对于表指定的字符 ...
- c# 常用数据库封装
我不为大家贴代码了,没有意思,有点多,我主要给大家介绍一下,源码会上传CSDN和GIT:我定义了一个ADO.NET操作接口,所有按照接口封装 1.sqlite数据库(需要SQLite.Interop. ...
- 关于alert后,才能继续执行后续代码问题
如果在正常情况下,代码要在alert之后才执行,解决办法:将要执行的代码用setTimeout延迟执行即可(原因:页面未加载完毕) 首先,先说明问题情况: 如下JS代码,不能正常执行,只有在最前面加上 ...
- 【TOJ 3369】CD(二分)
描述 Jack and Jill have decided to sell some of their Compact Discs, while they still have some value. ...
- 解决WordPress设置错误的url网站不能访问的问题
通过WordPress后台首选项更改了网站url地址之后,网站就会出现访问不了的情况,一般来说,网站后台也登陆不上去了,我从网上寻找到了四种方法,这四种方法前三种都是需要登陆到后台的,但实际上出错后, ...