当前位置: 首页 > 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
http://www.dtcms.com/a/131415.html

相关文章:

  • 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 -- 基础
  • 数据库表的操作
  • Ethers.js 开发入门:核心功能、最佳实践与避坑指南
  • TP8 PHP 支付宝-通用版-V3 SDK 接口加签方式为证书方式
  • 手撕TCP内网穿透及配置树莓派
  • 【DDR 内存学习专栏 1.2 -- DDR Channel 介绍】
  • 【webSocket协议】进阶实战案例(Spring 原生低层 API)
  • Python基础语法1
  • C# 混淆代码工具--ConfuserEx功能与使用指南
  • 边缘计算:从概念到落地的技术解读
  • SQL语言基础(二)--以postersql为例
  • MySQL 的lock_wait_timeout 参数