DP,动态规划   树状数组   最长不下降子序列

by  GeneralLiu

题目

就是说给一串由 0~9 组成的序列

求 以 i (1~n) 结尾 的 最长不下降子序列 的 和

(最长不下降子序列不唯一时选编号字典序最小的)

两步

1 求最长不下降子序列

2 求 步骤1 的和

1

O(n^2) 暴力不必说 (因为数字只有 0~9 十个, 即10*n, 所以就是 O(n)啊)

O(n logn) 树状数组 log10≈3.几,即3*n 也可以算 O(n)啊;

对于 数值x 查询 以0~x结尾的 最长不下降子序列 长度

所得长度 +1 即为所求

用 树状数组 维护

!!!!

树状数组没有 0 啊

那就每个数 查询和更新 都加一

因为这个我卡了 TLE 当时相当不解

2

再开一个数组保存序列和

在步骤1中一起维护即可

详见代码 query() 和 update()

代码

#include<bits/stdc++.h>
using namespace std;
#define low k&-k
int ret,l,n,tree[],s[];
void query(int k){ //查询
ret=s[k],l=tree[k]; //ret为序列和 l为长度 两个全局变量
for(k-=low;k;k-=low)
if(l<tree[k])//因为要保证字典序 所以 == 时 答案不改
l=tree[k],ret=s[k]; //长度更改时 序列和才会更改
}
void update(int k){ //更新
for(;k<=;k+=low)
if(tree[k]<l) //因为要保证字典序 所以 == 时 不作修改
tree[k]=l,s[k]=ret; //长度更新时 序列和才会更新
}
int main(){
scanf("%d",&n);
for(int v,i=;i<=n;i++){
scanf("%d",&v);
query(v+); //树状数组没有 0 要统一 +1
ret+=v;
l++;//长度再加上 本身
printf("%d ",ret);
update(v+);
}
return ;
}/*5
0 2 5 3 4*/

洛谷 P2008 大朋友的数字的更多相关文章

  1. P2008 大朋友的数字

    题目描述 有一批大朋友(年龄15岁以上),他们每人手上拿着一个数字,当然这个数字只有1位,也就是0到9之间.每个大朋友的分数为在他之前的最长不下降子序列中所有数之和.(这个序列必须以它作为结尾!)如有 ...

  2. 洛谷 2953 [USACO09OPEN]牛的数字游戏Cow Digit Game

    洛谷 2953 [USACO09OPEN]牛的数字游戏Cow Digit Game 题目描述 Bessie is playing a number game against Farmer John, ...

  3. 洛谷P1538迎春舞会之数字舞蹈

    题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...

  4. 洛谷 P1851 好朋友

    题目背景 小可可和所有其他同学的手腕上都戴有一个射频识别序列号码牌,这样老师就可以方便的计算出他们的人数.很多同学都有一个“好朋友” .如果 A 的序列号的约数之和恰好等于B 的序列号,那么 A的好朋 ...

  5. 洛谷P 1427 小鱼的数字游戏

    题目描述 小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字(长度不一定,以0结束,最多不超过100个,数字不超过2^32-1),记住了然后反着念出来(表示结束的数字0就不要念出来了).这对小鱼的 ...

  6. 洛谷 P1538 迎春舞会之数字舞蹈

    题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...

  7. 【洛谷】2602: [ZJOI2010]数字计数【数位DP】

    P2602 [ZJOI2010]数字计数 题目描述 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次. 输入输出格式 输入格式: 输入文件中仅包含一行两个整数a ...

  8. 【洛谷P1982】小朋友的数字

    小朋友的数字 题目链接 题目翻译: 每个小朋友有一个数字,构成一个数字序列a1,a2…an 我们定义“特征值”fi为a1~ai中的最大连续子段和 再定义“分数”si为1~i-1中最大的(sj+fj), ...

  9. 洛谷U32670 小凯的数字(比赛)

    题目网址 https://www.luogu.org/problemnew/show/U32670 题目背景 NOIP2018 原创模拟题T1 NOIP DAY1 T1 or DAY 2 T1 难度 ...

随机推荐

  1. 外文翻译 《How we decide》多巴胺的预言 第二节

    本节阅读感言:一朝被蛇咬,十年怕井绳.我们的大脑时刻跟新着本体的预测机制. 上一节提到的喇叭,苹果汁实验可以不断的延伸扩展,在播放喇叭前用强光照射...强光照射前放置特定的图片...都可以扩展多巴胺相 ...

  2. html5 input 标签

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="content-type" content ...

  3. Thymeleaf 总结

    在javaScript中使用表达式 var list = /*[[${list}]]*/ null;   <script th:inline="javascript"> ...

  4. 解决Android 打包为apk文件时已设置签名,在OPPO手机上安装时却出现“未设置签名”的错误

    解决办法:

  5. [转]FaceBook ATC 弱网测试工具环境搭建

    工具简介 ATC是FaceBook开源的移动网络测试工具Augmented Traffic Control(ATC),能够方便的让我们模拟各种网络环境进行测试. ATC有两个最吸引人的特点: 在手机上 ...

  6. codevs 2600 13号星期几?

    时间限制: 1 s  空间限制: 8000 KB  题目等级 : 黄金 Gold 题目描述 Description 从1900年1月1日(星期一) 开始经过的n年当中,每个月的13号这一天是星期一.星 ...

  7. help命令

    help——获得Shell内置命令的帮助信息 命令所在路径:Shell内置命令 示例1: # help cd 使用which或者whereis查找不到路径的命令一般是Shell内置命令,cd就是一个S ...

  8. SQLite – LIMIT子句

    SQLite - LIMIT子句 SQLite LIMIT子句是用来限制SELECT语句返回的数据量. 语法: SELECT语句.LIMIT子句的基本语法如下: SELECT column1, col ...

  9. 网新恩普(W 笔试)

    选择题 1.一桶有黄色,绿色,红色三种,闭上眼睛抓取同种颜色的两个.抓取多少个就可以确定你肯定有两个同一颜色的球? 答案: 4次 1.最坏打算抓3次都是不同颜色的黄.绿.红,此时,三种颜色的球各抓了一 ...

  10. dnskeygen - 针对DNS安全性所生成的公共,私有和共享的密钥

    SYNOPSIS(总览) dnskeygen [- [DHR ] size ] [-F ] -[zhu ] [-a ] [-c ] [-p num ] [-s num ] -n name DESCRI ...