Time Limit:2000ms   Memory Limit:128MB

题目描述

这个问题是这样的,如果一个区间[L,R]存在一个数ai,使得这个数是这个区间所有数的约数,那么[L,R]这段区间,是一段好区间。

现在,LYK想知道最长的好区间的长度是多少,并且它想知道最长的好区间具体的位置,如果有多个,从小到大输出它们的左端点。

输入格式(select.in)
第一行一个数n,表示有n个这样的数字。

第二行n个数ai。

输出格式(select.out)

第一行两个数sum,len。其中sum表示有sum个最长的好区间,len表示最长的好区间的长度。

第二行sum个数,从小到大输出,表示所有最长好区间的左端点。

输入样例

5

4 6 9 3 6

输出样例

1 4

2

样例解释:

有一个最长的好区间[2,5]。

数据范围

对于40%的数据n<=100。

对于60%的数据n<=3000。

对于80%的数据n<=30000。ai<=1000。

对于100%的数据1<=n<=300000,1<=ai<=1000000。ai以一定方式随机。

    去搜就行,但要看怎么搜才能不超时。

  从左向右枚举约数,向左向右搜,搜完后跳到r+1开始搜,这样时间复杂度就降下来了。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#include<math.h>
#include<vector>
using namespace std;
int n,a[];
int l,r;
int len,cnt,ll[];
int main()
{
freopen("select.in","r",stdin);freopen("select.out","w",stdout);
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
for(int i=;i<=n;i++)
{
for(l=i-;l>=;l--) if(a[l]%a[i]!=) break;l++;
for(r=i+;r<=n;r++) if(a[r]%a[i]!=) break;r--;
if(r-l+>len) len=r-l+,ll[cnt=]=l;else
if(r-l+==len) ll[++cnt]=l;
i=r;
}
printf("%d %d\n",cnt,len);
for(int i=;i<=cnt;i++)
printf("%d ",ll[i]);
return ;
}

寻找最美的你(select)的更多相关文章

  1. 2017 济南综合班 Day 2

    木棍(stick) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有很多木棍,具体的,总共有n根,且每根木棍都有一个长度.为了方便起见,我们可以用一个正 ...

  2. 一学期积累下来的SQL语句写法的学习

    整合了一下上学期学习的积累,希望可以帮到初学者! 可能以后会有用吧! A 基本语句的运用 操作基于emp表1.按工资从高到低排列SQL> select rownum as 次序,ename,sa ...

  3. 读BeautifulSoup官方文档之html树的搜索(2)

    除了find()和find_all(), 这里还提供了许多类似的方法我就细讲了, 参数和用法都差不多, 最后四个是next, previous是以.next/previous_element()来说的 ...

  4. 最全的ORACLE-SQL笔记

    -- 首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba --然后,解除对scott用户的锁 alter user scott account unloc ...

  5. Matplotlib数据可视化(6):饼图与箱线图

    In [1]: from matplotlib import pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParam ...

  6. 快速选择算法/Select 寻找第k大的数

    参考算法导论9.3节的内容和这位大神的博客:http://blog.csdn.net/v_JULY_v上对这一节内容代码的实现进行了学习 尝试实现了以查找中位数为前提的select算法. 算法功能:可 ...

  7. jQuery获取Select选择的Text和 Value(转)用时比较方便寻找

    ---恢复内容开始--- jQuery获取Select选择的Text和Value:语法解释:1. $("#select_id").change(function(){//code. ...

  8. Repository 仓储,你的归宿究竟在哪?(三)-SELECT 某某某。。。

    写在前面 首先,本篇博文主要包含两个主题: 领域服务中使用仓储 SELECT 某某某(有点晕?请看下面.) 上一篇:Repository 仓储,你的归宿究竟在哪?(二)-这样的应用层代码,你能接受吗? ...

  9. (十二)select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET

    select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型:int select(int maxfd,fd_set *rdset ...

随机推荐

  1. cassandra 存储二进制data

    Blob type The Cassandra blob data type represents a constant hexadecimal number defined as 0[xX](hex ...

  2. BLOB二进制大数据

    What is a Blob? A blob object represents a chuck of bytes that holds data of a file. But a blob is n ...

  3. CodeForces813E:Army Creation (主席树---上一题的加强版)

    As you might remember from our previous rounds, Vova really likes computer games. Now he is playing ...

  4. Spring 事务管理高级应用难点剖析: 第 2 部分

    本文是“Spring 事务管理高级应用难点剖析” 系列文章的第 2 部分,作者将继续深入剖析在实际 Spring 事务管理应用中容易遇见的一些难点,包括混合使用多种数据访问技术(如 Spring JD ...

  5. python与c#的交互模块pythonnet

    今天总结一下python与c#的交互模块pythonnet,其实微软也是有相应的解释器的,就是Ironpython,可是毕竟Ironpython还有很多东西没有从python那边继承过来,所以有时候用 ...

  6. AndroidStudio检测不到genymotion虚拟设备

    重启adb 单击  Reset adb

  7. Winform中ComBox大小设置

    combox,listview等一些控件的外观会由于字体大小的改变而改变.修改字体的大小宽度自动变化

  8. CS231n 2016 通关 第五、六章 Batch Normalization 作业

    BN层在实际中应用广泛. 上一次总结了使得训练变得简单的方法,比如SGD+momentum RMSProp Adam,BN是另外的方法. cell 1 依旧是初始化设置 cell 2 读取cifar- ...

  9. Tautonym Puzzle

    题意: 构造一个长度不超过200,数字不大于100的序列,使得合法子序列的个数恰好为N: 合法子序列是指一个长度为偶数的序列,前一半和后一半相等. 解法: 考虑这种构造方法 假设我们当前有序列为 $x ...

  10. linux之打包压缩命令

    tar:主选项:[一条命令以下5个参数只能有一个]-c: --create 新建一个压缩文档,即打包-x: --extract,--get解压文件-t: --list,查看压缩文档里的文件目录-r:- ...