博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
#162 (Div. 2)
阅读量:6188 次
发布时间:2019-06-21

本文共 2459 字,大约阅读时间需要 8 分钟。

A.

B.

C.

D.  

题意:从一个递增数字序列中找出一串最长的序列满足任意相邻的数字不互质。

分析:

The main idea is DP. Let's define dp[x] as the maximal value of the length of the good sequence whose last element is x, and define d[i] as the (maximal value of dp[x] where x is divisible by i).

You should calculate dp[x] in the increasing order of x. The value of dp[x] is (maximal value of d[i] where i is a divisor of x) + 1. After you calculate dp[x], for each divisor i of x, you should update d[i] too.

This algorithm works in O(nlogn) because the sum of the number of the divisor from 1 to n is O(nlogn).

Note that there is a corner case. When the set is {1}, you should output 1.

不打质数表
#include 
#include
#include
#include
using namespace std;#define clr(x) memset(x,0,sizeof(x))const int maxn = 100005;int dp[maxn];int pr[maxn];int main(){ int i, j, k, tp; int n, p, res,r,tmp; while (scanf("%d",&n)!=EOF) { clr(dp); for (i=0; i
dp[j]?tmp:dp[j]; while (p%j==0) p /= j; } } if (p!=1) { pr[tp++] = p; tmp = tmp>dp[p]?tmp:dp[p]; } tmp++; while (tp--) dp[pr[tp]] = tmp; } res = 0; for (i=0; i<=r; i++) if (dp[i]>res) res = dp[i]; if (res == 0) res++; printf("%d\n",res); } return 0;}

 

打质数表
#include 
#include
#include
#define clr(x) memset(x,0,sizeof(x))const int maxn = 100005;int dp[maxn];int p[maxn];int main(){ int i, j, k; clr(p); for (i=2; i<100001; i++){ if (p[i]==0){ for (j=i; j<100001; j+=i) p[j] = i; } } int res,n, t, x, tmp; while (scanf("%d",&n)!=EOF) { clr(dp); for (i=0; i
1){ tmp = dp[p[x]]>tmp?dp[p[x]]:tmp; x /= p[x]; } x = t; tmp++; while (x>1){ dp[p[x]] = tmp; x /= p[x]; } } res = 1; for (i=2; i<=100000; ++i) if (dp[i]>res) res = dp[i]; printf("%d\n",res); } return 0;}

 

转载于:https://www.cnblogs.com/dream-wind/archive/2013/02/11/2910030.html

你可能感兴趣的文章
IOS警告消除<转>
查看>>
阻止保存要求重新创建表的更改
查看>>
一、Java语言基础(5)_数组高级——方法参数的值传递机制
查看>>
编程总结3
查看>>
基于 libevent 开源框架实现的 web 服务器
查看>>
vue部署问题
查看>>
C++实现Behavioral - Observer模式 (转)
查看>>
指上的寂寞
查看>>
找出符合下图的互联网产品实例
查看>>
学习笔记一 线性代数
查看>>
IT人士感悟(转)
查看>>
20160507-hibernate入门
查看>>
jQuery Easy UI 使用
查看>>
solr搭建(linux)
查看>>
SpringCloud学习笔记:熔断器Hystrix(5)
查看>>
ubuntu 14.04 root破解
查看>>
ExtJS 4 grid 批次增删改查
查看>>
iOS比较当前日期与指定日期大小
查看>>
Packets
查看>>
第十周作业
查看>>