CCF201604-1 折点计数(解法二)(100分)(废除!!!)
试题编号: | 201604-1 |
试题名称: | 折点计数 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: |
问题描述
给定n个整数表示一个商店连续n天的销售量。如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销售量减少而后一天销售量增长,也称这一天为折点。其他的天都不是折点。如下图中,第3天和第6天是折点。
给定n个整数a1, a2, …, an表示销售量,请计算出这些天总共有多少个折点。 为了减少歧义,我们给定的数据保证:在这n天中相邻两天的销售量总是不同的,即ai-1≠ai。注意,如果两天不相邻,销售量可能相同。
输入格式
输入的第一行包含一个整数n。
第二行包含n个整数,用空格分隔,分别表示a1, a2, …, an。
输出格式
输出一个整数,表示折点出现的数量。
样例输入
7
5 4 1 2 3 6 4
样例输出
2
评测用例规模与约定
所有评测用例满足:1 ≤ n ≤ 1000,每天的销售量是不超过10000的非负整数。
|
问题链接:CCF201604试题。
问题描述:先输入一个十进制整数n,再输入n个正整数,求它们相邻数之差可知是否为上升或下降,由上升转下降或由下降转上升为折点,求折点数。
问题分析:有两种解法,第2种是根据评论建议增加的。
1.这个问题需要2次计算,先计算相邻值之差,以便知道目前趋势(上升或下降);然后再用相邻的趋势进行比较,求出折点的数量。把n个数过一遍即可,但是需要记忆之前的销售量和差值(趋势)。
2.如果一个点的值比左右两个都大或都小,则为折点。
程序说明:
这里写了C语言和C++语言两个版本的程序。
本程序采用第2种解法。程序中使用变量(left, mid, right)是关键,没有用数组存储数据,需要付出点时间代价。
参见:CCF201604-1 折点计数
提交后得100分的C语言程序如下:
/* CCF201604-1 折点计数 */#include <stdio.h>int main(void)
{int n, left, mid, right, sum=0;// 输入n,输前2个数scanf("%d", &n);if(scanf("%d%d", &left, &mid) != EOF) {for(int i=3; i<=n; i++) {// 输入第3至第n个数scanf("%d", &right);// 判定是否为折点if(left < mid && mid > right)sum++;else if(left > mid && mid < right)sum++;left = mid;mid = right;}}// 输出结果printf("%d\n", sum);return 0;
}
提交后得100分的C++语言程序如下:
/* CCF201604-1 折点计数 */#include <iostream>using namespace std;int main()
{int n, left, mid, right, sum=0;// 输入n,输前2个数cin >> n;if(cin >> left >> mid) {for(int i=3; i<=n; i++) {// 输入第3至第n个数cin >> right;// 判定是否为折点if(left < mid && mid > right)sum++;else if(left > mid && mid < right)sum++;left = mid;mid = right;}}// 输出结果cout << sum << endl;return 0;
}
CCF201604-1 折点计数(解法二)(100分)(废除!!!)相关推荐
- 6-2 综合成绩排名-结构体二 (100分)
6-2 综合成绩排名-结构体二 (100分) 众所周知,计算机院要对申请转入计算机大类的学生进行考核,考核方式包括机试和面试.学生综合成绩采取百分制,其中50%由机试成绩核算,另50%由学生已获得的加 ...
- HDU1106 排序(解法二)(废除!!!)
本文废除!!! 请点击以下的参考链接!!! 参考链接:HDU1106 排序[字符串+整数+排序]. 问题链接:HDU1106 排序. 问题简述:参见上述链接. 问题分析:这个程序的逻辑并不十分复杂,主 ...
- HDU2502 月之数(解法二)【废除!!!】
本文废除,参见以下链接. 参考链接:HDU2502 月之数[递推] 月之数 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/ ...
- UVALive5461 UVA615 POJ1308 Is It A Tree?(解法二)【废除!!!】
本文废除!!! 参考链接:UVALive5461 UVA615 POJ1308 ZOJ1268 Is It A Tree?[并查集] Regionals 1997 >> North Ame ...
- HDU4607 Park Visit(解法二)【废除!!!】
本文废除!!! 参见链接:HDU4607 Park Visit[DFS] 问题链接:HDU4607 Park Visit. 题意简述:莱克尔和她的朋友到公园玩,公园很大也很漂亮.公园包含n个景点通过n ...
- HDU1013 POJ1519 Digital Roots(解法二)【废除!!!】
本文废除!!! 参见链接:HDU1013 POJ1519 UVALive2085 Digital Roots[数根+水题] 该问题的最佳解法是利用数论的9余数定理来计算数根.一个数的数根等于该数的9的 ...
- HDU1164 Eddy's research I(解法二)【废除!!!】
本文废除,参见以下参考链接: 参考链接:HDU1164 Eddy's research I[素因子分解+筛选法+欧拉函数] 问题链接:HDU1164 Eddy's research I 问题描述:参见 ...
- POJ1338 Ugly Numbers(解法二)【废除!!!】
本文废除!!! 参考链接:POJ1338 Ugly Numbers[水题] 问题链接:POJ1338 Ugly Numbers.基础级练习题,用C语言编写程序. 题意简述:不能被2.3和5以外的素数整 ...
- HDU1234 开门人和关门人(解法二)【废除!!!】
本文废除!!! 参考链接:HDU1234 开门人和关门人 问题链接:HDU1234 开门人和关门人. 问题简述:参见上述链接. 问题分析:之前所做的程序质量不高,所以重做该题的题解.上次使用了结构数组 ...
- HDU2072 单词数(解法二)【废除!!!】
本文废除!!! 参考链接:HDU2072 单词数[水题] 问题链接:HDU2072 单词数. 问题描述:参见上文. 问题分析:这是一个比较简单的问题,一行一行读入字符串,统计该行有几个单词.单词之间只 ...
最新文章
- 网络实验: 总线型以太网的特性---广播、竞争总线(冲突)
- 请简要说明一下CyclicBarrier和CountDownLatch的区别?
- Ehcache介绍及整合Spring实现高速缓存
- 继承类对方法的影响java_4-Java面向对象-继承(上)
- 思科配置计算机ip地址子网掩码,计算机系统与网络技术IP地址 子网掩码 主机号等计算复习...
- Visual Assist X Options 常用宏
- Swift3 数组复制
- 苹果留给 iOS 开发者的时间不多了:30 天内必须更新旧版本
- 校园食堂订餐管理系统企业点餐软件
- win10网信政府版安装.NET Framework3.5
- 微型计算机最早应用于,计算机文化基础题库(含答案)
- 连接手表_小米手表体验报告(上)
- 将word文件中的文本转成字符串
- python哈姆雷特词频统计_人生苦短我用Python——哈姆雷特词频统计
- php behaviors,在PHP的Yii框架中使用行为Behaviors的方法
- xilinx linux 串口驱动
- vue中计算属性computed传递参数
- 2023年十大国际外汇交易平台排名揭晓!
- 久零区块链打造电商平台全新堡垒
- 计算机语言史话论文,计算机史话论文.doc
热门文章
- 【java学习之路】(java框架)006.springIOC
- php 多级分成手机版,PHP 层级菜单数组处理,由一级数组转换为多级数组的递归实现...
- 接口 java性能_MyPerf4J 一个极快的Java接口性能监控和统计工具
- nokia 3030 java 应用_诺基亚3030怎么样 :诺基亚3030测评【图解】
- 为什么应尽量从列表的尾部进行元素的增加与删除操作?
- word使用中的标题
- 数学知识点回顾(二)
- Tosca new project Repository as MS SQL Server
- Linux系统磁盘阵列创建教程----------(better late than never. 只要开始,虽晚不迟。)...
- 相关不是因果,哪又是啥?