CF283D Cows and Cool Sequences

题目描述

Bessie 和奶牛们最近在玩“cool”数列游戏,她们正在尝试构造一些“cool”数列。不幸的是,她们并不擅长算术,所以需要你的帮助! 如果一对正整数 $(x, y)$ 满足 $x$ 可以被表示为 $y$ 个连续整数(不一定是正数)的和,那么就称这对整数是“cool”的。如果一个数列 $(a_{1}, a_{2}, ..., a_{n})$ 满足其所有连续元素对 $(a_{1}, a_{2}), (a_{2}, a_{3}), ..., (a_{n-1}, a_{n})$ 都是“cool”的,那么这个数列就是“cool”的。 现在奶牛们有一个长度为 $n$ 的正整数数列 $a_{1}, a_{2}, ..., a_{n}$。每次操作你可以将某个 $a_{i}$ 替换为任意正整数(新值没有其他限制)。请你计算,最少需要进行多少次操作,才能将原数列变为“cool”数列。

输入格式

第一行为一个正整数 $n$,表示数列的长度,满足 $2 \leq n \leq 5000$。 第二行为 $n$ 个用空格隔开的正整数 $a_{1}, a_{2}, ..., a_{n}$,满足 $1 \leq a_{i} \leq 10^{15}$。 请不要在 C++ 中使用 %lld 格式符号来读写 64 位整数,建议使用 cin、cout 流或 %I64d 格式符号。

输出格式

输出一个整数,表示最少需要更改多少个 $a_{i}$,才能使数列变为“cool”数列。

说明/提示

在第一个样例中,原始数列已经是“cool”的,无需更改任何元素。 在第二个样例中,可以将 $a_{2}$ 改为 5,$a_{3}$ 改为 10,使数列变为 (20, 5, 10, 4),此时数列为“cool”的,共更改了 2 个元素。 由 ChatGPT 5 翻译