美丽的大树
来源:互联网 发布:统计学教材知乎 编辑:程序博客网 时间:2024/04/24 06:24
题目描述
【问题描述】
兴中道是中山最美丽的道路,路中间的绿化带上种了两列漂亮的大树,这些大树分成了50行,每行两棵大树,一共100棵大树,这些大树被编上了号,编号方式如下:
1 3 5 7 ………… 95 97 99
2 4 6 8 ………… 96 98 100
再过几天奥运火炬就要在中山传递了,美丽的兴中道当然是最重要的必经之路,但是某天晚上却发生了一件令人震惊的大事--可恶的破坏分子为了破坏奥运,让中山人民丢丑,竟然偷去了这100棵大树中的一部分!
公安部门马上出动,列出了被偷去了大树的编号。现在摆在我们面前的情况是,如果火炬的旁边是空空的树坑,那是令人无法接受的,因此我们只能压缩火炬在兴中道上的传递距离,务必使火炬在连续的大树边传递,当时,我们就得找出一列最长的连续的大树供传递火炬时展现在全世界的人面前。请你编写程序解决这一难题。
输入
【输入格式】
N (表示有N棵大树被盗)
N1 N2 N3……NN(被盗大树的编号)
输出
【输出格式】
M X (表示从第M棵大树开始,共有连续的X棵大树,如果有多个解,只输出一个解即可)
样例输入
59 15 27 35 6
样例输出
8 47
#include<iostream> using namespace std; void abc(int a[],int tree[],int N) { for(int i=0;i<50;i++) for(int j=0;j<N;j++) if(a[i]==tree[j]) a[i]=0; } void def(int a[],int &y,int &x,int &f) { for(int i=0;i<51;i++) { if(a[i]!=0) y++; else { if(y>x) { x=y; f=a[i-x]; } y=0; } } } int main() { int N,tree[100],i,j=0,k=0,a[51]={0},b[51]={0}; int x=0,y=0,f; cin>>N; for(i=0;i<N;i++) cin>>tree[i]; for(i=1;i<=100;i++) { if(i%2!=0) { a[j]=i; j++; } else { b[k]=i; k++; } } abc(a,tree,N); abc(b,tree,N); def(a,y,x,f); def(b,y,x,f); cout<<f<<" "<<x<<endl; return 0; }
方法感觉不是很好
- 美丽的大树
- 大树相乘的实现
- 大树
- RD浮世绘 外包的大树
- 没有大树的葱茏,就试着做一株小草吧
- 美丽的公司,美丽的心情
- 美丽的星期五下午
- 美丽的回忆
- 美丽的英语
- 美丽的数学(转贴)
- 两小无猜 美丽的爱
- 美丽的夜晚
- 美丽的天空
- 生命总是美丽的
- 开始的美丽
- 美丽的错误
- 美丽的世界--钓鱼
- 美丽的国家名
- 我的Android进阶之旅------>Android Widget 桌面数字时钟(DigtalClockWidget)实例
- java编程之计算圆球体积(从命令窗输入数据)
- windows7 重装后找回ubuntu系统
- 大数据量查询优化性能
- java编程之计算球体体积(从对话窗体输入数据)
- 美丽的大树
- Js中 关于top、clientTop、scrollTop、offsetTop的用法
- html Demo工具类:网页使用ie另存为htm文件时,css样式文件的图片路径不对,进行修改,并下载图片
- 位移动运算符:
- 请实现一个函数,把字符串中的每个空格替换成“%20”
- Leveldb源码分析--16
- poj 3276 Face The Right Way
- File geodatabase size and name limits
- JIT 技术