【Luogu】 P3928 SAC E#1 - 一道简单题 Sequence2
【题目】洛谷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的更多相关文章
- P3928 SAC E#1 - 一道简单题 Sequence2
题目背景 小强和阿米巴是好朋友. 题目描述 小强喜欢数列.有一天,他心血来潮,写下了三个长度均为n的数列. 阿米巴也很喜欢数列.但是他只喜欢其中一种,波动数列. 阿米巴把他的喜好告诉了小强.小强便打算 ...
- 洛谷P3928 SAC E#1 - 一道简单题 Sequence2
提交地址 题目背景 小强和阿米巴是好朋友. 题目描述 小强喜欢数列.有一天,他心血来潮,写下了三个长度均为n的数列. 阿米巴也很喜欢数列.但是他只喜欢其中一种,波动数列. 阿米巴把他的喜好告诉了小强. ...
- 又一道简单题&&Ladygod(两道思维水题)
Ladygod Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit S ...
- CSU 1785: 又一道简单题
1785: 又一道简单题 Submit Page Summary Time Limit: 5 Sec Memory Limit: 128 Mb Submitted: 602 ...
- 【Luogu】P3930 SAC E#1 - 一道大水题 Knight
[题目]洛谷10月月赛R1 提高组 [题意]给定n*n棋盘和<=16个棋子,给几个棋子种类和攻击范围,现我方只有一马,求能否吃王. [算法]状压+BFS [题解]16种棋子中,马不能吃马,直接处 ...
- 【Luogu】P3927 SAC E#1 - 一道中档题 Factorial
[题目]洛谷10月月赛R1 提高组 [题意]求n!在k进制下末尾0的个数,n<=1e18,k<=1e16. [题解]考虑10进制末尾0要考虑2和5,推广到k进制则将k分解质因数. 每个质因 ...
- 【洛谷十月月测】 P3927 SAC E#1 - 一道中档题 Factorial
题目传送门:https://www.luogu.org/problemnew/show/P3927 题目大意:给你两个正整数n,k,求n!在k进制下末尾零的数量. 我们通过简单的数学分析,便可以发现, ...
- SAC E#1 - 一道神题 Sequence1
题目背景 小强和阿米巴是好朋友. 题目描述 小强很喜欢数列.有一天,他心血来潮,写下了一个数列. 阿米巴也很喜欢数列.但是他只喜欢其中一种:波动数列. 一个长度为n的波动数列满足对于任何i(1 < ...
- SAC E#1 - 一道中档题 Factorial
题目背景 SOL君(炉石主播)和SOL菌(完美信息教室讲师)是好朋友. 题目描述 SOL君很喜欢阶乘.而SOL菌很喜欢研究进制. 这一天,SOL君跟SOL菌炫技,随口算出了n的阶乘. SOL菌表示不服 ...
随机推荐
- 有关c#的学习笔记整理与心得
[ 塔 · 第 一 条 约 定 ] 整理c#:Array Arraylist List Hashtable Dictionary Stack Queue等 Array 的容量是固定的,而 ArrayL ...
- Linux的ll命令详解
ll 列出来的结果详细,有时间,是否可读写等信息 ,象windows里的 详细信息 ls 只列出文件名或目录名 就象windows里的 列表 ll -t 是降序, ll -t | tac 是升序 l ...
- <Effective C++>读书摘要--Ctors、Dtors and Assignment Operators<一>
<Item 5> Know what functions C++ silently writes and calls 1.If you don't declare them yoursel ...
- 转 Js 跨域CORS报错 Response for preflight has invalid HTTP status code 405
转自:http://www.cnblogs.com/SilenceTom/p/6697484.html 调用接口遇到Response for preflight has invalid HTTP st ...
- STL--heap概述:make_heap,sort_heap,pop_heap,push_heap
heap并不属于STL容器组件,它分为 max heap 和min heap,在缺省情况下,max-heap是优先队列(priority queue)的底层实现机制. 而这个实现机制中的max-hea ...
- Win10修改编辑hosts文件无法保存怎么办
Win10无法修改编辑保存hosts文件怎么办?Win10系统默认是没有权限去编辑保存系统里的文件,这也是权限不够才导致修改编辑hosts后无法保存的原因,解决的办法就是把自己的帐户权限给提高就行了. ...
- 在mvc返回JSON时出错:序列化类型为“System.Data.Entity.DynamicProxies.Photos....这个会的对象时检测到循环引用 的解决办法
在MVC中返回JSON时出错,序列化类型为“System.Data.Entity.DynamicProxies.Photos....这个会的对象时检测到循环引用. public ActionResul ...
- matlab isfield
isfield 函数功能:判断输入是否是结构体数组的域(成员). 调用格式: tf=isfield(S,'fieldname') 检查结构体S是否包含由fieldname指定的域,如果包含,返回逻辑1 ...
- 编译 python 生成静态库 libpython2.7.so
由于我们是C++作驱动的Python开发,驱动需要加上Python静态库libpython2.7.so.libpython2.7.so.1.0.libpython2.7.a.此处我想在python源码 ...
- P4035 [JSOI2008]球形空间产生器
题目描述 有一个球形空间产生器能够在 nn 维空间中产生一个坚硬的球体.现在,你被困在了这个 nn 维球体中,你只知道球面上 n+1n+1 个点的坐标,你需要以最快的速度确定这个 nn 维球体的球心坐 ...