当前位置: 首页 > news >正文

AcWing 6093. 不互质子序列

问题描述

给定一个长度为 n 的严格单调递增整数序列 a₁, a₂, ..., aₙ,请你找出该序列的一个最长子序列,要求该子序列满足任意两个相邻元素不互质。

输出满足条件的最长子序列的长度。


输入格式

  • 第一行包含一个整数 n
  • 第二行包含 n 个整数 a₁, a₂, ..., aₙ,表示严格单调递增的整数序列。

输出格式

输出一个整数,表示满足条件的最长子序列的长度。


数据范围

  • 前 6 个测试点满足 1 ≤ n ≤ 10
  • 所有测试点满足:
    • 1 ≤ n ≤ 10⁵
    • 1 ≤ aᵢ ≤ 10⁵
    • aᵢ < aᵢ₊₁

输入样例

5
2 3 5 7 11

输出样例

1

c++代码

#include<bits/stdc++.h>
#include<stdio.h>

using namespace std;

int n, a, ans = 0;
unordered_map<int, int> mp;

vector<int> prime_factorization(int x) {
    vector<int> p;
    for (int i = 2; i * i <= x; i++) {
        if (x % i == 0) {
            p.push_back(i);
            while(x % i == 0) x /= i;
        }
    }
    if (x > 1) p.push_back(x);
    return p;
}

int main() {
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &a);
        vector<int> p = prime_factorization(a);
        int mid = 0;
        for (int x : p) {
            int k = (mp.find(x) == mp.end()) ? 0 : mp[x];
            mid = max(mid, k + 1);
        }
        ans = max(ans, mid);
        for (int x : p) mp[x] = max(mp[x], mid);
    }
    printf("%d", ans);
    return 0;
}//by wqs

相关文章:

  • ubuntu 安装samba
  • 奇葩问题:PGPOOL自动容灾切换,主备不生效原因
  • 部署YUM仓库
  • 卡码网55:右旋字符串
  • 【android bluetooth 框架分析 02】【Module详解 3】【HciHal 模块介绍】
  • 【tRPC-go】message、context相关源码设计思路
  • vue 入门:生命周期
  • 【第16届蓝桥杯C++C组】--- 数位倍数
  • Leetcode:二叉树
  • 简述一下Unity的UnityWebRequest
  • 第二届电气技术与自动化工程国际学术会议 (ETAE 2025)
  • STM32 低功耗模式下 RTC唤醒 和 PA0唤醒 的配合使用
  • HTML — 定位
  • leetcode精选合集(更新中)
  • Istio常用命令
  • kafka4.0浅尝辄止
  • 使用uv管理python项目环境
  • STM32单片机入门学习——第34节: [10-4] I2C通信外设
  • Mysql -- 基础
  • 数据库表的操作
  • 韩国代总统、国务总理韩德洙宣布辞职
  • 浪尖计划再出发:万亿之城2030课题组赴九城调研万亿产业
  • 中国武术协会原主席张耀庭逝世,曾促成电影《少林寺》拍摄
  • 腾讯重构混元大模型研发体系:成立大语言和多模态模型部,提升AI长期技术作战能力
  • 外交部:美方应在平等、尊重和互惠的基础上同中方开展对话
  • 民生访谈|规范放生活动、提升供水品质……上海将有这些举措