博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codeforces test #12 C. Subsequences 树状数组统计
阅读量:5157 次
发布时间:2019-06-13

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

C. Subsequences
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

For the given sequence with n different elements find the number of increasing subsequences with k + 1 elements. It is guaranteed that the answer is not greater than 8·1018.

Input

First line contain two integer values n and k (1 ≤ n ≤ 105, 0 ≤ k ≤ 10) — the length of sequence and the number of elements in increasing subsequences.

Next n lines contains one integer ai (1 ≤ ai ≤ n) each — elements of sequence. All values ai are different.

Output

Print one integer — the answer to the problem.

Sample test(s)
input
5 2 1 2 3 5 4
output
7
#include
#define REP(i,a,b) for(int i=a;i<=b;i++)#define MS0(a) memset(a,0,sizeof(a))using namespace std;typedef long long ll;const int maxn=100100;const int INF=(1<<29);int n,k;ll a[maxn];ll c[maxn][15];int lowbit(int x){ return x&(-x);}ll sum(int p,int id){ ll res=0; while(p>0){ res+=c[p][id]; p-=lowbit(p); } return res;}void add(int p,int id,ll x){ while(p<=n){ c[p][id]+=x; p+=lowbit(p); }}int main(){ ///freopen("in.txt","r",stdin); while(cin>>n>>k){ REP(i,1,n) scanf("%I64d",&a[i]); MS0(c); REP(i,1,n){ add(a[i],1,1); REP(j,2,k+1) add(a[i],j,sum(a[i]-1,j-1)); } cout<
<
View Code

 

转载于:https://www.cnblogs.com/--560/p/4959618.html

你可能感兴趣的文章
tkinter布局
查看>>
命令ord
查看>>
Sharepoint 2013搜索服务配置总结(实战)
查看>>
博客盈利请先考虑这七点
查看>>
使用 XMLBeans 进行编程
查看>>
写接口请求类型为get或post的时,参数定义的几种方式,如何用注解(原创)--雷锋...
查看>>
【OpenJ_Bailian - 2287】Tian Ji -- The Horse Racing (贪心)
查看>>
Java网络编程--socket服务器端与客户端讲解
查看>>
List_统计输入数值的各种值
查看>>
学习笔记-KMP算法
查看>>
Timer-triggered memory-to-memory DMA transfer demonstrator
查看>>
跨域问题整理
查看>>
[Linux]文件浏览
查看>>
64位主机64位oracle下装32位客户端ODAC(NFPACS版)
查看>>
获取国内随机IP的函数
查看>>
今天第一次写博客
查看>>
江城子·己亥年戊辰月丁丑日话凄凉
查看>>
IP V4 和 IP V6 初识
查看>>
Spring Mvc模式下Jquery Ajax 与后台交互操作
查看>>
(转)matlab练习程序(HOG方向梯度直方图)
查看>>