Codeforces Round #162 (Div. 2): D. Good Sequences(DP)
题意:
给你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)相关推荐
- 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] ...
- [Codeforces Round #194 (Div. 2)] Secret 解题报告 (数学)
题目链接:http://codeforces.com/problemset/problem/334/C 题目: 题目大意: 给定数字n,要求构建一个数列使得数列的每一个元素的值都是3的次方,数列之和S ...
- Codeforces Round #647 (Div. 2) - Thanks, Algo Muse!(AB)
Johnny and Ancient Computer CodeForces - 1362A 思路:因为除或者乘的都是2的幂次,所以看看二者的商是不是2的幂次就可以了.如果是的话,就3,2,1依次就行 ...
- Codeforces Round #467 (Div. 1): C. Lock Puzzle(构造)
题目链接:http://codeforces.com/contest/936/problem/C 题意:给你一个起始字符串和一个目标字符串,你只有一种操作:选择一个数x,将后x个字母翻转,然后提取出来 ...
- Codeforces Round #521 (Div. 3) B - Disturbed People (贪心)
题目链接:http://codeforces.com/contest/1077/problem/B 题意:给你一长度为n的01序列.0表示当前位置的房子灯是灭的,1表示当前房子的位置灯是亮的.判断某个 ...
- Codeforces Round #409 (Div. 2) C Voltage Keepsake(二分)
题意:有n(n<=100000)个机器...第i个机器最开始有bi(1<=bi <= 100000)个单位的电量,机器可以储存的电量没有上限,启动后每秒消耗ai(1<=ai&l ...
- 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 ...
- Codeforces Round #506 (Div. 3) - F. Multicolored Markers (思维)
题意 给两种颜色的数量 a 和 b,这两种颜色恰好组成一个长方形,而且至少有一种颜色在整个长方形里面也是个长方形,求满足条件中周长最小的情况 AC 当a是里面的小长方形,把a能组成的长方形的宽记录一下 ...
- Codeforces Round #506 (Div. 3) - D. Concatenated Multiples(思维)
题目链接 题意 给你N个数字和一个K,问一共有几种拼接数字的方式使得到的数字是K的倍数,拼接:"234"和"123"拼接得到"234123" ...
最新文章
- carthage update --no-use-binaries --platform mac,ios
- python+selenium七:下拉框、选项框、select用法
- 【数据结构与算法】之深入解析“字符串相乘”的求解思路与算法示例
- 为什么 Go 模块在下游服务抖动恢复后,CPU 占用无法恢复
- 前端经典面试题 不经典不要star!
- linux远程监控毕业设计,毕业设计论文:基于嵌入式Linux远程监控系统的设计与实现.doc...
- C++编程笔记:C++用new与不用new创建对象的区别
- java jpanel隐藏_java – 绘制JPanel隐藏菜单
- 五个实用又有趣的网站
- 配置百度云CDN加速
- 刷机工具-fastboot
- 计算机手动双面打印,记得要收藏 如何手动完成双面打印文档
- 中国网络游戏中的反外挂模式
- Tkinter模块GUI图形化编程实战(八)——中国象棋(含超详解及完整源码、完整程序免费下载链接)
- 一文看懂神经网络工作原理
- 一位美国教授给研究生的怎样记读书笔记的建议(中文总结)
- git使用说明--新手安装必备
- 小巧的绿色html导航引导页
- 2021-MAXP-DGL图机器学习大赛-Graph@ICT-复盘与总结【rank6】
- 《版式设计——日本平面设计师参考手册》—第1章段落格式的设置
热门文章
- python怎么读取csv文件-使用Python读写csv文件的三种方法
- python单词的含义-python 前面几个单词含义
- python能自学成功吗-Python学习自学效果好吗?|老男孩Python人工智能培训
- vue 连接地址下载 PDF
- 桌面只计算机图标发白,win7电脑桌面图标突然变成了白色怎么办?
- sqlserver openrowset mysql_sqlserver连接mysql
- 最简单的基于FFmpeg的移动端例子:IOS 视频解码器
- FFmpeg源代码简单分析:avcodec_open2()
- LAV Filter 源代码分析 1: 总体结构
- linux如何杀死ping进程,linux下ping命令使用详解