【题目】洛谷10月月赛R1 提高组

【算法】递推DP+树状数组

【题解】列出DP递推方程,然后用树状数组维护前后缀和。

#include<cstdio>
#include<cstring>
#include<cctype>
#include<cmath>
#include<algorithm>
#define lowbit(x) (x&-x)
#define ll long long
using namespace std;
int read(){
char c;int s=,t=;
while(!isdigit(c=getchar()))if(c=='-')t=-;
do{s=s*+c-'';}while(isdigit(c=getchar()));
return s*t;
}
int min(int a,int b){return a<b?a:b;}
int max(int a,int b){return a<b?b:a;}
int abs(int x){return x>?x:-x;}
//void insert(int u,int v){tot++;e[tot].v=v;e[tot].from=first[u];first[u]=tot;}
/*------------------------------------------------------------*/
const int inf=0x3f3f3f3f,maxn=; int n,a[maxn][],f[maxn][],ans,tot,c[][maxn],b[maxn]; void modify(int d,int x,int k){if(d&)x=tot-x+;for(int i=x;i<=tot;i+=lowbit(i))c[d][i]=max(c[d][i],k);}
int ask(int d,int x){if(d&)x=tot-x+;int as=;for(int i=x;i>=;i-=lowbit(i))as=max(as,c[d][i]);return as;}
int main(){
n=read();tot=;
for(int i=;i<=n;i++)a[i][]=read(),f[i][]=,b[++tot]=a[i][];
for(int i=;i<=n;i++)a[i][]=read(),f[i][]=,b[++tot]=a[i][];
for(int i=;i<=n;i++)a[i][]=read(),f[i][]=f[i][]=,b[++tot]=a[i][];
sort(b+,b+tot+);
tot=unique(b+,b+tot+)-b-;
for(int i=;i<=n;i++)a[i][]=lower_bound(b+,b+tot+,a[i][])-b;
for(int i=;i<=n;i++)a[i][]=lower_bound(b+,b+tot+,a[i][])-b;
for(int i=;i<=n;i++)a[i][]=lower_bound(b+,b+tot+,a[i][])-b;
modify(,a[][],);modify(,a[][],);modify(,a[][],);
modify(,a[][],);modify(,a[][],);modify(,a[][],);
modify(,a[][],);modify(,a[][],);modify(,a[][],);
modify(,a[][],);modify(,a[][],);modify(,a[][],);
for(int i=;i<=n;i++){
f[i][]=max(f[i][],ask(,a[i][])+);ans=max(ans,f[i][]);
f[i][]=max(f[i][],ask(,a[i][])+);ans=max(ans,f[i][]);
f[i][]=max(f[i][],ask(,a[i][])+);ans=max(ans,f[i][]);
f[i][]=max(f[i][],ask(,a[i][])+);ans=max(ans,f[i][]);
modify(,a[i][],f[i][]);modify(,a[i][],f[i][]);modify(,a[i][],max(f[i][],f[i][]));
modify(,a[i][],f[i][]);modify(,a[i][],f[i][]);modify(,a[i][],max(f[i][],f[i][]));
modify(,a[i][],f[i][]);modify(,a[i][],f[i][]);modify(,a[i][],f[i][]);
modify(,a[i][],f[i][]);modify(,a[i][],f[i][]);modify(,a[i][],f[i][]);//
}
printf("%d",ans);
return ;
}

【Luogu】 P3928 SAC E#1 - 一道简单题 Sequence2的更多相关文章

  1. P3928 SAC E#1 - 一道简单题 Sequence2

    题目背景 小强和阿米巴是好朋友. 题目描述 小强喜欢数列.有一天,他心血来潮,写下了三个长度均为n的数列. 阿米巴也很喜欢数列.但是他只喜欢其中一种,波动数列. 阿米巴把他的喜好告诉了小强.小强便打算 ...

  2. 洛谷P3928 SAC E#1 - 一道简单题 Sequence2

    提交地址 题目背景 小强和阿米巴是好朋友. 题目描述 小强喜欢数列.有一天,他心血来潮,写下了三个长度均为n的数列. 阿米巴也很喜欢数列.但是他只喜欢其中一种,波动数列. 阿米巴把他的喜好告诉了小强. ...

  3. 又一道简单题&&Ladygod(两道思维水题)

    Ladygod Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit S ...

  4. CSU 1785: 又一道简单题

    1785: 又一道简单题 Submit Page   Summary   Time Limit: 5 Sec     Memory Limit: 128 Mb     Submitted: 602   ...

  5. 【Luogu】P3930 SAC E#1 - 一道大水题 Knight

    [题目]洛谷10月月赛R1 提高组 [题意]给定n*n棋盘和<=16个棋子,给几个棋子种类和攻击范围,现我方只有一马,求能否吃王. [算法]状压+BFS [题解]16种棋子中,马不能吃马,直接处 ...

  6. 【Luogu】P3927 SAC E#1 - 一道中档题 Factorial

    [题目]洛谷10月月赛R1 提高组 [题意]求n!在k进制下末尾0的个数,n<=1e18,k<=1e16. [题解]考虑10进制末尾0要考虑2和5,推广到k进制则将k分解质因数. 每个质因 ...

  7. 【洛谷十月月测】 P3927 SAC E#1 - 一道中档题 Factorial

    题目传送门:https://www.luogu.org/problemnew/show/P3927 题目大意:给你两个正整数n,k,求n!在k进制下末尾零的数量. 我们通过简单的数学分析,便可以发现, ...

  8. SAC E#1 - 一道神题 Sequence1

    题目背景 小强和阿米巴是好朋友. 题目描述 小强很喜欢数列.有一天,他心血来潮,写下了一个数列. 阿米巴也很喜欢数列.但是他只喜欢其中一种:波动数列. 一个长度为n的波动数列满足对于任何i(1 < ...

  9. SAC E#1 - 一道中档题 Factorial

    题目背景 SOL君(炉石主播)和SOL菌(完美信息教室讲师)是好朋友. 题目描述 SOL君很喜欢阶乘.而SOL菌很喜欢研究进制. 这一天,SOL君跟SOL菌炫技,随口算出了n的阶乘. SOL菌表示不服 ...

随机推荐

  1. LintCode-366.斐波纳契数

    斐波纳契数列 查找斐波纳契数列中第 N 个数. 所谓的斐波纳契数列是指: 前2个数是 0 和 1 . 第 i 个数是第 i-1 个数和第i-2 个数的和. 斐波纳契数列的前10个数字是:0, 1, 1 ...

  2. js控制input只能输入数字和小数点后两位,输入其他自动清除方法。

    工作中input='text'总会遇到要控制输入数字,或者是输入中文,输入电话,输入身份证号,邮箱等.今天我遇到的是要输入数字并且只能小数点后面两位的数字,还不能为负数.废话不多说上代码: <i ...

  3. 原生js移动端可拖动进度条插件

    该插件最初的想法来自网上的一篇文章,直达链接:https://www.cnblogs.com/libin-1/p/6220056.html 笔者因为业务需要寻找到这个插件,然后拿来用之,发现各种不方便 ...

  4. 重载和const参数

    const仅能用于在定义函数签名时,区分是为引用定义参数,还是为指针定义参数.定义基本类型type(如int等),从重载的观点来看,const int和int是相同的. const long& ...

  5. 《转》'autocomplete="off"'在Chrome中不起作用解决方案

    最近项目中遇到一个令人头疼的问题,查阅各种资料,尝试各种方法,最终得以解决:哎···下面就说说这心酸的历程吧. 大家都知道autocomplete属性是表单字段中的HTML5新属性,该属性有两种状态值 ...

  6. Python 源码剖析(一)【python对象】

    处于研究python内存释放问题,在阅读部分python源码,顺便记录下所得.(基于<python源码剖析>(v2.4.1)与 python源码(v2.7.6)) 先列下总结:      ...

  7. hdu 1392 Surround the Trees (凸包)

    Surround the Trees Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  8. Android 通知机制 Toast和Notification

    Android常用的反馈系统状态信息的方式主要有三种 Toast提醒 通知栏提醒 对话框提醒 三种提醒分别适用于页面的提示.系统交互事件的通知和非常重要的提醒: 一.Toast Toast toast ...

  9. BZOJ4553:[HEOI2016/TJOI2016]序列——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4553 佳媛姐姐过生日的时候,她的小伙伴从某宝上买了一个有趣的玩具送给他.玩具上有一个数列,数列中某 ...

  10. BZOJ1014:[JSOI2008]火星人prefix——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=1014 Description 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀.比方说,有这样 ...