#217. 上升序列
来源:互联网 发布:php计算器代码 编辑:程序博客网 时间:2024/06/05 00:47
傻逼题233。思路简单,代码好写。
先考虑50分算法。用i表示用了前i个数,j表示最大数为j,k表示序列长度,则f[i][j][k]=∑f[i-1][j1][k-1],j1<j。
然后用树状数组优化好像就A了。
#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<cstdlib>using namespace std;#define rep(i,j,k) for(i=j;i<=k;++i)#define per(i,j,k) for(i=j;i>=k;--i)#define ull unsigned long long#define db double#define mkp(x,y) make_pair(x,y)#define pii pair<int,int>#define X first#define Y secondconst int N=100005;ull c[12][N];int n,k,a[N];ull query(ull cc[],int x){int y;ull z=0;for(y=x;y;y-=y&-y)z+=cc[y];return z;}void add(ull cc[],int x,ull y){for(;x<=n;x+=x&-x)cc[x]+=y;}int main(){int i,j;scanf("%d%d",&n,&k);++k;rep(i,1,n)scanf("%d",&a[i]);rep(i,1,n){per(j,k,2)add(c[j],a[i],query(c[j-1],a[i]-1));add(c[1],a[i],1);}printf("%llu\n",query(c[k],n));return 0;}
阅读全文
0 0
- #217. 上升序列
- 上升序列
- 上升序列
- 上升序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 上升序列问题
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 写个python脚本下载并解压 MNIST 数据集(1)
- hdu5787 数位DP
- Spring中@Autowired和@Resource区别
- Android7.0中文文档(API) -- Switch
- 表格的增删 JaveScript之DOM实例
- #217. 上升序列
- jbpm-6.3.0.Final-installer-full在Windows上的部署、数据库由H2切换为MySql、Linux上的部署全过程
- 片上处理器与多核系统
- 自定义dialog(仿照APP启动时的dialog广告页面)
- C++的代理类
- javase基础知识总结
- 【数据结构 是否为二叉排序树】
- 浅谈C#中常见的委托
- 【机房重构】--VB.NET限制文本框类型为数字