题意:

给你n个数字,求出最长相邻不互质子序列

思路:

设dp[i]表示以第i个数字结尾的最长子序列长度

考虑不互质的两个数(x,y),它们一定存在相同的质因子

在DP过程中求出R[p]表示p的倍数当前最晚出现的位置,那么就可以得出dp[i] = max(dp[R[p]]+1),其中p为a[i]的因子

这样的话预处理所有数字的质因子,因为一个数(≤100000)的质因子不会超过7个,所以转移基本上算O(1)

总复杂度O(nlogn)

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<map>
#include<string>
#include<math.h>
#include<queue>
#include<set>
#include<stack>
#include<iostream>
using namespace std;
#define LL long long
#define mod 1000000007
int R[100005], dp[100005], a[100005], flag[100005] = {1,1};
vector<int> G[100005];
void Primeset()
{LL i, j;for(i=2;i<=100000;i++){if(flag[i])continue;for(j=i;j<=100000;j+=i){G[j].push_back(i);flag[j] = 1;}}
}
int main(void)
{int n, i, j, x, ans;Primeset();scanf("%d", &n);for(i=1;i<=n;i++)scanf("%d", &a[i]);ans = 0;for(i=1;i<=n;i++){dp[i] = 1;for(j=0;j<G[a[i]].size();j++){x = G[a[i]][j];dp[i] = max(dp[i], dp[R[x]]+1);R[x] = i;}ans = max(ans, dp[i]);}printf("%d\n", ans);return 0;
}

Codeforces Round #162 (Div. 2): D. Good Sequences(DP)相关推荐

  1. Codeforces Round #670 (Div. 2) D. Three Sequences(差分序列、数学思维分析)

    D. Three Sequences D. Three Sequences 题意:给定一个长度为nnn的序列a[]a[]a[],要求把他分成两个序列b[],c[]b[],c[]b[],c[] a[i] ...

  2. [Codeforces Round #194 (Div. 2)] Secret 解题报告 (数学)

    题目链接:http://codeforces.com/problemset/problem/334/C 题目: 题目大意: 给定数字n,要求构建一个数列使得数列的每一个元素的值都是3的次方,数列之和S ...

  3. Codeforces Round #647 (Div. 2) - Thanks, Algo Muse!(AB)

    Johnny and Ancient Computer CodeForces - 1362A 思路:因为除或者乘的都是2的幂次,所以看看二者的商是不是2的幂次就可以了.如果是的话,就3,2,1依次就行 ...

  4. Codeforces Round #467 (Div. 1): C. Lock Puzzle(构造)

    题目链接:http://codeforces.com/contest/936/problem/C 题意:给你一个起始字符串和一个目标字符串,你只有一种操作:选择一个数x,将后x个字母翻转,然后提取出来 ...

  5. Codeforces Round #521 (Div. 3) B - Disturbed People (贪心)

    题目链接:http://codeforces.com/contest/1077/problem/B 题意:给你一长度为n的01序列.0表示当前位置的房子灯是灭的,1表示当前房子的位置灯是亮的.判断某个 ...

  6. Codeforces Round #409 (Div. 2) C Voltage Keepsake(二分)

    题意:有n(n<=100000)个机器...第i个机器最开始有bi(1<=bi <= 100000)个单位的电量,机器可以储存的电量没有上限,启动后每秒消耗ai(1<=ai&l ...

  7. Codeforces Round #168 (Div. 2)D. Zero Tree(DP,中等难度)

    D. Zero Tree time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  8. Codeforces Round #506 (Div. 3) - F. Multicolored Markers (思维)

    题意 给两种颜色的数量 a 和 b,这两种颜色恰好组成一个长方形,而且至少有一种颜色在整个长方形里面也是个长方形,求满足条件中周长最小的情况 AC 当a是里面的小长方形,把a能组成的长方形的宽记录一下 ...

  9. Codeforces Round #506 (Div. 3) - D. Concatenated Multiples(思维)

    题目链接 题意 给你N个数字和一个K,问一共有几种拼接数字的方式使得到的数字是K的倍数,拼接:"234"和"123"拼接得到"234123" ...

最新文章

  1. carthage update --no-use-binaries --platform mac,ios
  2. python+selenium七:下拉框、选项框、select用法
  3. 【数据结构与算法】之深入解析“字符串相乘”的求解思路与算法示例
  4. 为什么 Go 模块在下游服务抖动恢复后,CPU 占用无法恢复
  5. 前端经典面试题 不经典不要star!
  6. linux远程监控毕业设计,毕业设计论文:基于嵌入式Linux远程监控系统的设计与实现.doc...
  7. C++编程笔记:C++用new与不用new创建对象的区别
  8. java jpanel隐藏_java – 绘制JPanel隐藏菜单
  9. 五个实用又有趣的网站
  10. 配置百度云CDN加速
  11. 刷机工具-fastboot
  12. 计算机手动双面打印,记得要收藏 如何手动完成双面打印文档
  13. 中国网络游戏中的反外挂模式
  14. Tkinter模块GUI图形化编程实战(八)——中国象棋(含超详解及完整源码、完整程序免费下载链接)
  15. 一文看懂神经网络工作原理
  16. 一位美国教授给研究生的怎样记读书笔记的建议(中文总结)
  17. git使用说明--新手安装必备
  18. 小巧的绿色html导航引导页
  19. 2021-MAXP-DGL图机器学习大赛-Graph@ICT-复盘与总结【rank6】
  20. 《版式设计——日本平面设计师参考手册》—第1章段落格式的设置

热门文章

  1. python怎么读取csv文件-使用Python读写csv文件的三种方法
  2. python单词的含义-python 前面几个单词含义
  3. python能自学成功吗-Python学习自学效果好吗?|老男孩Python人工智能培训
  4. vue 连接地址下载 PDF
  5. 桌面只计算机图标发白,win7电脑桌面图标突然变成了白色怎么办?
  6. sqlserver openrowset mysql_sqlserver连接mysql
  7. 最简单的基于FFmpeg的移动端例子:IOS 视频解码器
  8. FFmpeg源代码简单分析:avcodec_open2()
  9. LAV Filter 源代码分析 1: 总体结构
  10. linux如何杀死ping进程,linux下ping命令使用详解