数字对 (长乐一中模拟赛day2T2)
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)相关推荐
- 改造二叉树 (长乐一中模拟赛day2T1)
1.改造二叉树 [题目描述] 小Y在学树论时看到了有关二叉树的介绍:在计算机科学中,二叉树是每个结点最多有两个子结点的有序树.通常子结点被称作"左孩子"和"右孩子&quo ...
- 一中模拟赛3.15——树上gcd
Solution 计算每个质因子在哪些点出现,然后在树上只保存这些点,通过计算大于000的g(i,j)g(i,j)g(i,j)个数来计算贡献 如果质因子次数>1>1>1,那么把p2p ...
- 2018.7.17 绍兴一中模拟赛 解题报告
成绩: 100+100+50=250(考得不错,只可惜跑得太慢,是250中最慢的一个) T1:交换(swap) 满分解法1: 这题是真的水. 先介绍一个比较麻烦的做法,也是我考试时的做法. 大致思路就 ...
- 绍兴一中模拟赛3.19——时光流转
Description Solution 离线以后点分 对于每个点,都用这个点的祖先把这个点的子树更新一遍, 考虑到操作时间早的才能更新晚的和题目中说的"路径上边权都大于等于 v a l v ...
- 全国信息学奥林匹克联赛 ( NOIP2014) 复赛 模拟题 Day1 长乐一中
题目名称 正确答案 序列问题 长途旅行 英文名称 answer sequence travel 输入文件名 answer.in sequence.in travel.in 输出文件名 answer. ...
- 第十三届蓝桥杯模拟赛(第三期)试题与题解 C++
文章目录 第十三届蓝桥杯模拟赛(第三期)试题与题解 1.试题A 题解:数制转换 2.试题B 题解:枚举 3.试题C 题解:枚举 4.试题D 题解:最小生成树 5.试题E 方法一:暴力求和 方法二:一维 ...
- 2021年 第12届 蓝桥杯 第4次模拟赛真题详解及小结【Java版】
蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...
- 2020年 第11届 蓝桥杯 第2次模拟赛真题详解及小结【Java版】
蓝桥杯 Java B组 省赛真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 注意:部分代码及程序 源自 蓝桥杯 官网视频(历年真题解析) 郑未老师. 2013年 第04届 蓝桥杯 ...
- 蓝桥杯省内模拟赛解题过程
今天参加了一场蓝桥杯模拟赛,做的咋样还不知道,本博客的题解只是我提交的代码,并不代表真正的题解,大家参考着看看吧. 题目一 问题描述 将LANQIAO中的字母重新排列,可以得到不同的单词,如LANQI ...
最新文章
- SharePoint API测试系列——Records.BypassLocks测试
- php umount强制,linux中mount/umount命令的基本用法及开机自动挂载方法
- java在线支付---03_分析易宝支付网关的请求协议
- calendar的使用以及如何获取某月份最后一天的方法
- /usr/bin/ld: 找不到 -lmsc----解决方案
- python numpy数据类型_Python中numpy的数据类型,python,dtype
- 水面船舶雷达监视-信天翁雷达监视系统
- Elixir Meetup 相关不相关的一些感触
- php ping 检测电脑在线,怎么ping网速(教你如何用ping命令来检测电脑的网速)
- vue的基础知识-vue基础入门
- xml和map相互转化
- 什么是僵尸进程(Zombie Processes)
- 在Linux(fedora 20)上解压缩rar文件
- 从乌镇互联网大会,了解未来技术发展趋势
- 一位卖家对淘宝查杀虚假交易痛讼!
- 程序设计课程设计报告(学生成绩管理系统)
- NOIP2016提高组初赛难点整理
- java -- 随机获取字母或者数字
- turf.js实现行政区(多边形)图形合并边界提取,掩膜等效果
- 每日一BUG(javax.el.PropertyNotFoundException: 类型[com.Bean.Goods]上找不到属性[img])
热门文章
- C#中Json字符串的各种应用类
- Code-First Migrations随Entity Framework 4.3一同发布
- iBatis应用之获取表的元数据
- c#中out和ref的使用区别 [转]
- 小机箱的评估,立人 vs Jobs机箱
- 聊聊elasticsearch的RoutingService
- Oracle RAC禁用DRM
- 吴恩达后,其钦点的百度研究院院长林元庆也离职筹备AI创业
- 2463: [中山市选2009]谁能赢呢? Codeforces Round #429 (Div. 2) B. Godsend noip三国游戏...
- VirtualBox中安装CentOS(新手教程)