题解见https://blog.csdn.net/godleaf/article/details/84402128

这一类dp题是可以压缩掉一维空间的,本题枚举a1到an,枚举到ai时枚举ai的每个约数,dp[i-1][j]用来表示前i-1个数组成的子串长度是j的解个数,dp[i][j]即时前i个数组成的子串长度是j的解的个数,那么dp[i][j]是dp[i-1][j]+dp[i-1][j-1],即前i个数组成的长度为j的子串个数=前i-1个数组成的长度为j的子串个数+前i-1个数组成的长度为j-1的子串个数

可以将第一维删掉,那么枚举ai的每个约数时就要从大到小枚举,同时用ans来保存答案

#include<bits/stdc++.h>
#define mod 1000000007
#define maxn 100004
using namespace std;
vector<int>v[maxn];
int n,x,f[maxn*];
int main(){
memset(f,,sizeof f);
scanf("%d",&n);
for(int i=;i<=n;i++){
int x;
scanf("%d",&x);
v[i].clear();
for(int j=;j<=sqrt(x);j++){
if(x%j==){
v[i].push_back(j);
if(x!=j*j)v[i].push_back(x/j);
}
}
sort(v[i].begin(),v[i].end());
} long long ans=;
f[]=;
for(int i=;i<=n;i++){
for(int j=v[i].size()-;j>=;j--){
f[v[i][j]]=(f[v[i][j]]+f[v[i][j]-])%mod;
ans=(ans+f[v[i][j]-])%mod;
}
}
printf("%d\n",ans);
return ;
}

cf1061c 普通dp题的更多相关文章

  1. Codeforces Round #369 (Div. 2)---C - Coloring Trees (很妙的DP题)

    题目链接 http://codeforces.com/contest/711/problem/C Description ZS the Coder and Chris the Baboon has a ...

  2. 4817 江哥的dp题d

    4817 江哥的dp题d  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 已知1-N的排列P的LIS(最长上 ...

  3. 4809 江哥的dp题c

    4809 江哥的dp题c  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 有两个数x,y,一开始x=1,y= ...

  4. 4816 江哥的dp题b

    4816 江哥的dp题b  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 给出两个1-N的随机排列A,B.若 ...

  5. 4815 江哥的dp题a

    4815 江哥的dp题a  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 给出一个长度为N的序列A(A1,A ...

  6. HDU 2577 How to Type(dp题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2577 解题报告:有一个长度在100以内的字符串,并且这个字符串只有大写和小写字母组成,现在要把这些字符 ...

  7. codevs4817 江哥的dp题d

    4817 江哥的dp题d  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 黄金 Gold [题目描述] Description 已知1-N的排列P的LIS(最长上升子序列)不超 ...

  8. 古韵之乞巧 题解 dp题

    [noip模拟赛1]古韵之乞巧   描述 闺女求天女,更阑意未阑. 玉庭开粉席,罗袖捧金盘. 向月穿针易,临风整线难. 不知谁得巧,明旦试相看. ——祖咏<七夕> 女子乞巧,是七夕的重头戏 ...

  9. HDU 4472 Count DP题

    解题报告:题目大意,给你n个球,要将这n个球从下到上按层次排列,要求同一个层次的的每一个分支的数量都必须相等,问有多少种排列的方法. 此题的一个DP题,假设现在有n个球,要将这n个球排列好,我们就必须 ...

随机推荐

  1. idea常用的插件

    ignore 插件 可以自动生成.ignore文件   非常的实用 gitee 插件 搜所gitee安装即可  码云的插件 maven helper 插件 idea 中解决maven 包冲突的问题 a ...

  2. Java编程思想 学习笔记5

    五.初始化与清理 1.用构造器确保初始化  在Java中,通过提供构造器,类的设计者可确保每个对象都会得到初始化.创建对象时,如果其类具有构造器,Java就会在用户有能力操作对象之前自动调用相应的构造 ...

  3. bzoj千题计划307:bzoj5248: [2018多省省队联测]一双木棋

    https://www.lydsy.com/JudgeOnline/problem.php?id=5248 先手希望先手得分减后手得分最大,后手希望先手得分减后手得分最小 棋盘的局面一定是阶梯状,且从 ...

  4. NPOI 2.3

    样例 //设置员工编号单元格为文本格式 循环效率问题? IDataFormat dataformat = workbook.CreateDataFormat(); ICellStyle style1 ...

  5. Selenium自动化Page模式(Python)

    Selenium是当前主流的web自动化工具,提供了多种浏览器的支持(Chrome,Firefox, IE等等),当然大家也可以用自己喜欢的语言(Java,C#,Python等)来写用例,很容易上手. ...

  6. 在安卓上用Termux安装sqlmap

    1.打开Termux执行以下命令 apt update apt install git apt install python2 // 安装sqlmap运行环境 2.从github上下载sqlmap , ...

  7. Javaweb学习笔记——(七)——————myexlipse基本使用、jdk5.0新特性及反射讲解

    1.debug调试模式: *使用这种模式,调试程序(看到程序运行停止在这一行) -显示出来行号 -双击左边,出现一个圆点,表示设置了一个断点 *使用debug as方式,运行程序 -特使是否进入到调试 ...

  8. Python字符串解析方法汇总

    Python字符串方法解析 1.capitalize 将首字母大写,其余的变成小写 print('text'.capitalize()) print('tExt'.capitalize()) 结果: ...

  9. json和jsonp的使用区别

    json和jsonp的使用区别 一.    跨域请求的概念 JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象. 二.    json和jsonp JSON是一种基于文本的数据交换方 ...

  10. 给父元素与子元素分别设置visibility注意点

    由于机顶盒的终端特性原因,不能用display:hidden去做隐藏,就选择了visibility:hidden. 在这里遇到一个现象: 给父元素设置了hidden,但是里面的子元素依然可见.以为只是 ...