博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
luogu最长连号
阅读量:4958 次
发布时间:2019-06-12

本文共 1424 字,大约阅读时间需要 4 分钟。

https://www.luogu.org/problemnew/show/P1420

100分做法~\(≧▽≦)/~啦啦啦

#include
#include
using namespace std;int a[10001],k,l,n;int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } for(int i=1;i<=n;i++) { if(a[i]==a[i+1]-1) { k++; } else k=0; if(k>l) { l=k; } } printf("%d",l+1);}

题解上还有一个递归的做法非常好^_^

#include
#include
using namespace std;int a[10001];int dg(int x){ if(a[x]==a[x+1]-1) return 1+dg(x+1); else return 1;}int main(){ int n,k=0,l; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } for(int i=1;i<=n-1;i++) { if(dg(i)>k) { k=dg(i); } } printf("%d",k); return 0;}

可以用这个题体会一下递归。。。。。我觉得海星

一开始就想到要用计数器,可是没用好。。。。。~~~~(>_<)~~~~

我一直没弄明白怎么处理不连续的连号。。。

于是我看了题解\(^o^)/~

用l保存,始终保存当前遇到的最长连号,如果遇到新的最长连号就更新。

如果中间有中断的连号就将k清零。但在l中已经保留当前最长连号,最后输出l

还有一个我本来以为数据很水,可以骗分的0分做法( ⊙ o ⊙ )啊!

#include
#include
using namespace std;int a[1001];int main(){ int n,k=0; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++) { if(a[i]==a[i+1]-1) k++; } printf("%d",k+1); return 0;}

 

 

加油啊↖(^ω^)↗

QwQ

Everything will ok!

转载于:https://www.cnblogs.com/xrj1229/p/9209304.html

你可能感兴趣的文章
cut的用法
查看>>
SQL Server索引进阶:第六级,标签
查看>>
CentOS 7下的KVM网卡配置为千兆网卡
查看>>
Virtualenvwrapper的'mkvirtualenv' 不是内部或外部命令,也不是可运行的程序 或批处理文件...
查看>>
项目总结
查看>>
稀酷客 各种优秀电子图书资源的论坛博客
查看>>
image -- pmp
查看>>
SVN&nbsp;被防火墙阻止的解决方法
查看>>
2018高级软件工程——助教总结
查看>>
初次接触scrapy框架
查看>>
Spring对注解(Annotation)处理源码分析1——扫描和读取Bean定义【转】
查看>>
[python]类与类中的列表
查看>>
gulp基本介绍
查看>>
将GraphicalViewer导出为图片
查看>>
内置函数大总结
查看>>
SQL权威指南(第4版)pdf
查看>>
非受检异常(运行时异常)和受检异常的区别等
查看>>
2007年的第一篇
查看>>
webView和js交互
查看>>
android studio 下载地址
查看>>