博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu-Find the nondecreasing subsequences(树状数组)
阅读量:4286 次
发布时间:2019-05-27

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

详细解释点击:

离散化  ++++ dp思想

#include
#include
#include
using namespace std;const int mod = 1000000007;int a[100010];int n;struct node{ int x,y;}s[100010];bool cmp(node p,node q){ if(p.x == q.x) return p.y < q.y; return p.x < q.x;}int lowbit(int x){ return x&(-x);}void add(int pos,int num){ while(pos <= n) { a[pos] = (a[pos] + num) % mod; pos += lowbit(pos); }}int getsum(int pos){ int res = 0; while(pos > 0) { res = (res + a[pos]) % mod; pos -= lowbit(pos); } return res;}int main(){ while(scanf("%d",&n)!=EOF) { memset(a,0,sizeof(a)); memset(s,0,sizeof(s)); for(int i = 1;i <= n;i++) { scanf("%d",&s[i].x); s[i].y = i; } sort(s+1,s+n+1,cmp); int temp = 0; for(int i = 1;i <= n;i++) { temp = getsum(s[i].y) + 1; temp %= mod; add(s[i].y,temp); } printf("%d\n",getsum(n)); }}

转载地址:http://eysgi.baihongyu.com/

你可能感兴趣的文章
【深入理解JVM】:Java内存模型JMM
查看>>
【JDK】:Java容器框架
查看>>
【JDK】:HashMap详解
查看>>
【JDK】:java.lang.String、StringBuilder、StringBuffer 源码解析
查看>>
【JDK】:ArrayList和LinkedList源码解析
查看>>
【JDK】:ConcurrentHashMap高并发机制——【转载】
查看>>
nginx 运行与操作
查看>>
nginx 负载均衡
查看>>
js bootstrap 警告框的隐藏和显示
查看>>
centos 7.1安装docker
查看>>
docker 创建一个新镜像
查看>>
docker server gave HTTP response to HTTPS client 问题处理办法
查看>>
docker 导入与导出镜像
查看>>
docker 创建本地registry并push镜像
查看>>
docker 在push镜像到本地registry出现的500 Internal Server Error
查看>>
Linux磁盘空间查看及空间满的处理
查看>>
Linux下clock计时函数学习
查看>>
OpenMp多线程编程计时问题
查看>>
Linux/Unix 环境下实现精确计算程序运行的时间
查看>>
C++实现统计代码运行时间计时器的简单实例
查看>>