从左到右维护当前未结束段的 gcd 与长度。当第一次出现
gcd≤当前长度定义数组中的一个连续子数组为“和谐段”,当且仅当该子数组所有元素的最大公约数不超过它的长度。即对于子数组 al,al+1,…,ar,若 gcd(al,al+1,…,ar)≤r−l+1,则称其为和谐段。
现在给定一个长度为 n 的正整数数组,请你从中选取尽可能多的互不相交的和谐段,求最多可以选取的段数。如果不存在任何和谐段,则需报告这一情况。
约束条件:设测试数据组数为 T,T 不超过 104;所有测试数据中数组长度 n 的总和不超过 2×105;数组元素均为正整数且不超过 109。
第一行输入一个整数 T,表示测试数据的组数。
开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册