珠子什么的最讨厌了。。
来源:互联网 发布:linux多线程服务通信 编辑:程序博客网 时间:2024/04/29 19:14
珠子
Time Limit 1000ms
Memory Limit 65536K
description
小林有一串珠子,是由很多个大小不同的珠子串联在一起组成的圆环型的,且其中每个珠子的大小可以用int型的整数来表示。小林有一个爱好就是数珠子,他想数那些位置相邻而且大小只相差1的珠子组成单调递增或单调递减的最长串是多长,比如说现在他有5个珠子,大小分别为2 3 4 9 22,那么这串珠子最长的符合要求的串的长度为3,而如果是 3 4 3 9 22 这个的话那么最长的有两条,3 4 和 4 3,但是长度相同答案为2。
input
数据有多个样例,每个样例的第一行给出一个n(0< n < 10),代表这串珠子的总长度(珠子是圆环型的首尾相连的),接着第二行给出n个数字,代表这n个珠子的大小。
output
请输出这串珠子中最长的符合要求的子串的长度
sample_input
52 3 4 9 2253 4 9 22 253 4 3 9 22
sample_output
3 32
hint
source
点击打开链接
#include <cstdlib>#include <iostream>using namespace std;int main(int argc, char *argv[]){ int n,f=-10,l=1,tl=1,f1=-10,l1=1,tl1=1; while(~scanf("%d",&n)) { int a[n]; for(int i=0;i<n;i++) { scanf("%d",&a[i]); } for(int j=0;j<2*n;j++) { int i; i=j%n; if(a[i]-f==1) {l++;f=a[i];} else {if(l>tl)tl=l;l=1;} f=a[i]; } for(int j=0;j<2*n;j++) { int i; i=j%n; if(a[i]-f1==-1) {l1++;f1=a[i];} else {if(l1>tl1)tl1=l1;l1=1;} f1=a[i]; } printf("%d\n",tl>tl1?tl:tl1); l=1; tl=1;f=-10; l1=1; tl1=1;f1=-10; } system("PAUSE"); return EXIT_SUCCESS;}
主要的实现部分是
for(int j=0;j<2*n;j++) { int i; i=j%n; if(a[i]-f==1) {l++;f=a[i];} else {if(l>tl)tl=l;l=1;} f=a[i]; }
把题中说得那串珠子a【n】变成b【2*n】
其中b【0<n】就是a【n】,b【n<2*n】也是a【n】
其实就是2个a连在一起,
这样就解决了题中要用到的“环形数组“的问题,
当然,这个题要求的是最大串的长度,最大就是n,所以可以这样求。
这个做法就好像是做了一条”辅助线“
代码是控制循环次数,在a【】上跑了2遍,
数组中的每一个元素与前一个相比,只要符合增加1的条件,长度就l++;一旦不符合了,马上记录l并与前一次l比较,大的留下,小的被覆盖
l变成1,准备下一次的计数,最后最大的l就留下来了。
- 珠子什么的最讨厌了。。
- 线段树什么的最讨厌了
- 最讨厌成绩单了。。
- 我不知道你不知道我知道了你知道了……智力题什么的最讨厌了……
- 【ZOJ3587】Marlon's String——白四爷×KMP 白濑肆の算法完全解读KMP篇 KMP来袭第二弹前缀什么的果然最讨厌了!【1.0%达成!】
- 2165 绩点神马的最讨厌了
- 我最讨厌两种人
- css 什么的拉高了
- 博客什么的写也就写了
- 最讨厌写的很精辟的代码了,ZNM维护起来就头痛了!
- 纳新什么的最期待(累) 了 >_<
- 安卓app什么的是不是最赚钱了·~我也想学这么高富帅的职业
- 抄袭不写出处,最讨厌你们这些没有技术含量的人了...
- 说说那个叫API的 封装神马的最讨厌了!
- 最讨厌那些分了手,还无耻的说想念的人
- 最讨厌说大话,只想聊经验!我从创建Hello world神经网络到底学会了什么?
- 女人最讨厌的对白
- 搜索引擎最讨厌的东东
- Eclipse下配置主题颜色
- Objective-C学习之路 委托模式
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File
- C++ - 了解new_handler的所作所为
- HDU-2009(赛前水题)
- 珠子什么的最讨厌了。。
- 外部表不是预期的格式错误
- 每日一译【1005】SGA_MAX_SIZE
- HDU 1064 Financial Management
- C++标准库vector及迭代器
- linux中的优先搜索树的实现--prio_tree
- win32sdk学习-Richedit组件使用
- Linux使用过程中遇到的各种小问题集合
- ruby on rails继续