2.数字对

【题目描述】

小H是个善于思考的学生,现在她又在思考一个有关序列的问题。

她的面前浮现出一个长度为n的序列{ai},她想找出一段区间[L, R](1 <= L <= R <= n)。

这个特殊区间满足,存在一个k(L <= k <= R),并且对于任意的i(L <= i <= R),ai都能被ak整除。这样的一个特殊区间 [L, R]价值为R - L。

小H想知道序列中所有特殊区间的最大价值是多少,而有多少个这样的区间呢?这些区间又分别是哪些呢?你能帮助她吧。

【输入格式】

第一行,一个整数n.

第二行,n个整数,代表ai.

【输出格式】

第一行两个整数,num和val,表示价值最大的特殊区间的个数以及最大价值。

第二行num个整数,按升序输出每个价值最大的特殊区间的L.

【样例输入1】

5

4 6 9 3 6

【样例输出1】

1 3

2

【样例输入2】

5

2 3 5 7 11

【样例输出2】

5 0

1 2 3 4 5

【数据范围】

30%: 1 <= n <= 30 , 1 <= ai <= 32.

60%: 1 <= n <= 3000 , 1 <= ai <= 1024.

80%: 1 <= n <= 300000 , 1 <= ai <= 1048576.

100%: 1 <= n <= 500000 , 1 <= ai < 2 ^ 31.

思路:

  暴力出奇迹,乱搞压正解!

  我们暴力枚举每个ak点

  然后记录最长的区间

  判一下重

  轻松ac

来,上代码:

#include<vector>
#include<cstdio>
#include<iostream>
#include<algorithm>using namespace std;int n,if_Z,ai[500005],head_num=0;char word;vector<int>ans[500005];inline void read_int(int &now_001)
{now_001=0,if_Z=1;word=getchar();while(word<'0'||word>'9'){if(word=='-') if_Z=-1;word=getchar();}while(word<='9'&&word>='0'){now_001=now_001*10+(int)(word-'0');word=getchar();}now_001*=if_Z;
}int main()
{ios::sync_with_stdio(false);read_int(n);for(int i=1;i<=n;i++) read_int(ai[i]);int lik,rik,cur_1,maxn=0;for(int i=1;i<=n;i++){lik=i,rik=i,cur_1=0;while(lik-1>0){if(ai[lik-1]%ai[i]==0) lik--;else break;}while(rik+1<=n){if(ai[rik+1]%ai[i]==0) rik++;else break;}ans[rik-lik].push_back(lik);maxn=max(maxn,rik-lik);}
    sort(ans[maxn].begin(),ans[maxn].end());vector<int>::iterator it=ans[maxn].begin();while(it<ans[maxn].end()){if(*it!=ai[head_num]){head_num++;ai[head_num]=*it;}it++;}printf("%d %d\n",head_num,maxn);for(int i=1;i<=head_num;i++) printf("%d ",ai[i]);return 0;
}

转载于:https://www.cnblogs.com/IUUUUUUUskyyy/p/6065852.html

数字对 (长乐一中模拟赛day2T2)相关推荐

  1. 改造二叉树 (长乐一中模拟赛day2T1)

    1.改造二叉树 [题目描述] 小Y在学树论时看到了有关二叉树的介绍:在计算机科学中,二叉树是每个结点最多有两个子结点的有序树.通常子结点被称作"左孩子"和"右孩子&quo ...

  2. 一中模拟赛3.15——树上gcd

    Solution 计算每个质因子在哪些点出现,然后在树上只保存这些点,通过计算大于000的g(i,j)g(i,j)g(i,j)个数来计算贡献 如果质因子次数>1>1>1,那么把p2p ...

  3. 2018.7.17 绍兴一中模拟赛 解题报告

    成绩: 100+100+50=250(考得不错,只可惜跑得太慢,是250中最慢的一个) T1:交换(swap) 满分解法1: 这题是真的水. 先介绍一个比较麻烦的做法,也是我考试时的做法. 大致思路就 ...

  4. 绍兴一中模拟赛3.19——时光流转

    Description Solution 离线以后点分 对于每个点,都用这个点的祖先把这个点的子树更新一遍, 考虑到操作时间早的才能更新晚的和题目中说的"路径上边权都大于等于 v a l v ...

  5. 全国信息学奥林匹克联赛 ( NOIP2014) 复赛 模拟题 Day1 长乐一中

    题目名称 正确答案  序列问题 长途旅行 英文名称 answer sequence travel 输入文件名 answer.in sequence.in travel.in 输出文件名 answer. ...

  6. 第十三届蓝桥杯模拟赛(第三期)试题与题解 C++

    文章目录 第十三届蓝桥杯模拟赛(第三期)试题与题解 1.试题A 题解:数制转换 2.试题B 题解:枚举 3.试题C 题解:枚举 4.试题D 题解:最小生成树 5.试题E 方法一:暴力求和 方法二:一维 ...

  7. 2021年 第12届 蓝桥杯 第4次模拟赛真题详解及小结【Java版】

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...

  8. 2020年 第11届 蓝桥杯 第2次模拟赛真题详解及小结【Java版】

    蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...

  9. 蓝桥杯省内模拟赛解题过程

    今天参加了一场蓝桥杯模拟赛,做的咋样还不知道,本博客的题解只是我提交的代码,并不代表真正的题解,大家参考着看看吧. 题目一 问题描述 将LANQIAO中的字母重新排列,可以得到不同的单词,如LANQI ...

最新文章

  1. SharePoint API测试系列——Records.BypassLocks测试
  2. php umount强制,linux中mount/umount命令的基本用法及开机自动挂载方法
  3. java在线支付---03_分析易宝支付网关的请求协议
  4. calendar的使用以及如何获取某月份最后一天的方法
  5. /usr/bin/ld: 找不到 -lmsc----解决方案
  6. python numpy数据类型_Python中numpy的数据类型,python,dtype
  7. 水面船舶雷达监视-信天翁雷达监视系统
  8. Elixir Meetup 相关不相关的一些感触
  9. php ping 检测电脑在线,怎么ping网速(教你如何用ping命令来检测电脑的网速)
  10. vue的基础知识-vue基础入门
  11. xml和map相互转化
  12. 什么是僵尸进程(Zombie Processes)
  13. 在Linux(fedora 20)上解压缩rar文件
  14. 从乌镇互联网大会,了解未来技术发展趋势
  15. 一位卖家对淘宝查杀虚假交易痛讼!
  16. 程序设计课程设计报告(学生成绩管理系统)
  17. NOIP2016提高组初赛难点整理
  18. java -- 随机获取字母或者数字
  19. turf.js实现行政区(多边形)图形合并边界提取,掩膜等效果
  20. 每日一BUG(javax.el.PropertyNotFoundException: 类型[com.Bean.Goods]上找不到属性[img])

热门文章

  1. C#中Json字符串的各种应用类
  2. Code-First Migrations随Entity Framework 4.3一同发布
  3. iBatis应用之获取表的元数据
  4. c#中out和ref的使用区别 [转]
  5. 小机箱的评估,立人 vs Jobs机箱
  6. 聊聊elasticsearch的RoutingService
  7. Oracle RAC禁用DRM
  8. 吴恩达后,其钦点的百度研究院院长林元庆也离职筹备AI创业
  9. 2463: [中山市选2009]谁能赢呢? Codeforces Round #429 (Div. 2) B. Godsend noip三国游戏...
  10. VirtualBox中安装CentOS(新手教程)