正题

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5542


题目大意

求序列A有多少个长度为M的递增子序列。


解题思路

用fi,jfi,jf_{i,j}表示长度为i,以AjAjA_j结尾的序列的个数。然后显然得出动态转移方程通过上一次从任意一个地方转移,动态转移方程:

fi,j=∑k<j,Ak<Ajfi−1,kfi,j=∑k<j,Ak<Ajfi−1,k

f_{i,j}=\sum_{k
我们可以用树状数组储存和维护k。


code

#include<cstdio>
#include<algorithm>
#include<cstring>
#define N 2010
#define lowbit(x) x&-x
#define BPM 1000000007
using namespace std;
int t[N],a[N],f[N][N],n,m,l,uiqe[N],ans,ts;
void change(int x,int k)
{while(x<=l){t[x]=(t[x]+k)%BPM;x+=lowbit(x);}
}
int ask(int x)
{int sum=0;while(x){sum=(sum+t[x])%BPM;x-=lowbit(x);}return sum;
}
int main()
{scanf("%d",&ts);for(int ti=1;ti<=ts;ti++){scanf("%d%d",&n,&m);a[0]=-2147483647;uiqe[n+1]=a[0];for(int i=1;i<=n;i++)scanf("%d",&a[i]),uiqe[i]=a[i];sort(uiqe+1,uiqe+2+n);l=unique(uiqe+1,uiqe+1+n)-(uiqe+1);for(int i=0;i<=n;i++)a[i]=lower_bound(uiqe+1,uiqe+1+l,a[i])-uiqe;//以上为离散化memset(f,0,sizeof(f));f[0][0]=1;ans=0;for(int i=1;i<=m;i++){memset(t,0,sizeof(t));change(a[0],f[i-1][0]);//修改for(int j=1;j<=n;j++){f[i][j]=ask(a[j]-1);//询问和change(a[j],f[i-1][j]);//维护和if(i==m) ans=(ans+f[i][j])%BPM;}}printf("Case #%d: %d\n",ti,ans);}
}

HDOJ5542-The Battle of Chibi【树状数组,dp】相关推荐

  1. HDU-5542-The Battle of Chibi【树状数组+dp】

    HDU-5542-The Battle of Chibi[树状数组+dp] Time Limit: 6000/4000 MS (Java/Others) Memory Limit: 65535/655 ...

  2. HDU - 5542 The Battle of Chibi(树状数组+DP)

    UVA - 12983 The Battle of Chibi(树状数组+DP) HDU - 5542 The Battle of Chibi(树状数组+DP) #include<cstdio& ...

  3. M元上升子序列【树状数组+dp】

    多元组-牛客网 题解 ac代码 #include<iostream> #include<cstring> #include<algorithm> #include& ...

  4. 【USACO】奶牛抗议 树状数组+dp

    题目描述 约翰家的 N 头奶牛正在排队游行抗议.一些奶牛情绪激动,约翰测算下来,排在第 i 位的奶牛 的理智度为 A i ,数字可正可负. 约翰希望奶牛在抗议时保持理性,为此,他打算将这条队伍分割成几 ...

  5. P3287-[SCOI2014]方伯伯的玉米田【二维树状数组,dp】

    正题 题目链接:https://www.luogu.com.cn/problem/P3287 题目大意 nnn个玉米高度不同,可以选择kkk个区间拔高111个高度,求最长不降子序列长度. 解题思路 显 ...

  6. CodeForces 314C 树状数组 + dp

    //CodeForces 314C //分析:相当于求给定序列的不降子序列的个数,从一个空序列开始将得到的不降子序列不断的延长是典型的做法,则dp[i]表示以第 i 个元素结尾的序列 //思路:O(n ...

  7. bzoj 2131: 免费的馅饼(树状数组+DP)

    2131: 免费的馅饼 Time Limit: 10 Sec  Memory Limit: 259 MB Submit: 408  Solved: 245 [Submit][Status][Discu ...

  8. ACWING297. 赤壁之战(树状数组dp)

    给定一个长度为N的序列A,求A有多少个长度为M的严格递增子序列. 输入格式 第一行包含整数T,表示共有T组测试数据. 每组数据,第一行包含两个整数N和M. 第二行包含N个整数,表示完整的序列A. 输出 ...

  9. hdu 6447YJJ's Salesman 离散化+树状数组+DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6447 因为图中点的坐标值过大,达到1e9.然而只有1e5个点.所以先将其离散化.并按照<x.y& ...

最新文章

  1. 十字相乘法c语言,十字相乘法的运算方法
  2. win7任务栏还原为xp样式
  3. macos自带java_在 MacOS 上安装 Java - Java 入门教程
  4. 这份思科设备命令大全火了~
  5. 一篇文章,带你全面的了解二叉树-记得点赞
  6. 深度学习中防止过拟合的方法
  7. 计算器c语言源代码全,C语言的计算器源代码
  8. Windows server 2008 R2 SP1 IE8升级IE11(离线安装)
  9. FastStone Capture—屏幕录像
  10. openGL之API学习(一四七)实时渲染、光线追踪渲染和栅格化渲染
  11. EXTJS动态载入组件定义文件并初始化组件,动态构造界面的方法.
  12. Word2010如何隐藏去掉回车符
  13. 誉天华为数通认证技术指南之BGP的前世今生
  14. 什么是跨域(CORS)?怎么解决跨域(CORS)?
  15. 张勇向大公司病开刀:面对未来,变阵是为了更好地应战
  16. 手机计算机在线汇率准确吗,汇率计算机(汇率计算器在线计算)
  17. AFDX(ARINC664)的网络协议——MAC层
  18. 深度学习环境配置(一)--deepin20.6 安装显卡驱动
  19. 34所985计算机考研难度,考研:34所自主划线985大学考研难度也分为5个档次!你考的第几档...
  20. 2019年山东有哪些地市参加了事业单位卫生类统考?

热门文章

  1. php return 变量,php内核笔记–函数返回变量return_value
  2. 程序显示文本框_【教程】TestComplete测试桌面应用程序教程(二)
  3. 如何动态的生成某种类型的集合呢_知乎画报」的移动端动态化工程实践
  4. android+百度lbs云,百度——LBS.云 v2.0——云存储扩展字段——Android
  5. 夏门大学的计算机专业排第几,2019厦门大学专业排名
  6. [Redis6]常用数据结构_Hash哈希
  7. [数据结构-严蔚敏版]P71串的抽象数据类型的定义
  8. [MySQL基础]MySQL语法规范介绍
  9. 八数码问题II-双向bfs和map标记
  10. 快速排序在最坏的情况下时间复杂度(Ω(nlgn)(算法导论第三版9.3-3))