绝世好题(线性dp)】的更多相关文章

给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0(2<=i<=len).   Input 输入文件共2行. 第一行包括一个整数n. 第二行包括n个整数,第i个整数表示ai.   Output 输出文件共一行. 包括一个整数,表示子序列bi的最长长度.   Sample Input3 1 2 3 Sample Output2Hint n<=100000,ai<=2*10^9 如果每个位置有一个为0的话,&的结果为0,只有全一的时候才为…
题目链接:绝世好题 暴力就不用说了,和lis神似,O(n2)妥妥的挂掉,但可以得大部分分(好像是90,80)... 考虑优化,来一发非正解的优化: #include<bits/stdc++.h> using namespace std; const int N=101000; int n,a[N],f[N],ans,tot; priority_queue<pair<int,int> >q; struct gg { int x,y; }b[N]; inline int r…
思路 :题意描述我也很绝望 .先说一下题意 : 给定长度为n数组a [ ],求a[ ] 的一个最大子序列(可以不连续),使得b [ i ]& b [ i - 1 ] ! = 0.求最大的 b数组的长度 题解:显然是DP,状态转移方程显然是dp[ i ] = m a x { dp [ k ] + 1 } , a [ i ] & a [ k ] ! = 0 但是不能跑 n*n 考虑位运算性质,只要考虑相邻之间两个转移即可.记录  i 位置之前的 二进制位每个位上不为 0 的 最大长度 详细见代…
按位DP f[i]表示第i位为1的最长子序列 #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #include<algorithm> #define ll long long using namespace std; int n,x,ans,mx; ]; void read(int &k) { ;k=;char c=getchar(); ),c…
题目 给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0(2<=i<=len). 输入格式 输入文件共2行. 第一行包括一个整数n. 第二行包括n个整数,第i个整数表示ai. 输出格式 输出文件共一行. 包括一个整数,表示子序列bi的最长长度. 输入样例 3 1 2 3 输出样例 2 提示 n<=100000,ai<=2*10^9 题解 按位dp f[i] = max{f[j] + 1} (存在A[i]二进制某位和A[j]同时为1) 这样做是…
题目描述: 给定一个长度为\(n\)的数列\(a\),求\(a\)的子序列\(b\)的最长长度,满足bi&bi-1!=0(\(2<=i<=len\)). 90分做法: 并没有部分分,但是我们可以很容易地想出\(O(n^2)\)算法:诸如最长上升子序列. 但是一定要注意位运算需要大力加括号,就算是与运算!!(因为这个WA了好几次hhh) #include<cstdio> #include<algorithm> using namespace std; int n,…
设f[i][j]表示数列到i为止最后一项第j位为1的最大子序列长度,每次从i-1中1<<j&a[i]!=0的位+1转移来 然后i维是不需要的,答案直接在dp过程中去max即可 #include<iostream> #include<cstdio> using namespace std; int n,f[35],ans; int read() { int r=0,f=1; char p=getchar(); while(p>'9'||p<'0') {…
4300: 绝世好题 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id=4300 Description 给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0(2<=i<=len). Under two situations the player could score one point. ⋅1. If you touc…
P4310 绝世好题 题目描述 给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0(2<=i<=len). 输入输出格式 输入格式: 输入文件共2行. 第一行包括一个整数n. 第二行包括n个整数,第i个整数表示ai. 输出格式: 输出文件共一行. 包括一个整数,表示子序列bi的最长长度. 输入输出样例 输入样例#1: 复制 3 1 2 3 输出样例#1: 复制 2 说明 对于100%的数据,1<=n<=100000,ai<=10^9.…
一.Watching Fireworks is Fun(紫题) 题目:一个城镇有n个区域,从左到右1编号为n,每个区域之间距离1个单位距离节日中有m个烟火要放,给定放的地点ai,时间ti当时你在x,那么你可以获得∣bi-ai-x∣的幸福值,你每个单位时间可以移动不超过d个单位距离.你的初始位置是任意的(初始时刻为1),求你通过移动能获取到的最大的开心值. 题目大意:有n个点,在这之中有m个点有烟花,分别会在t时刻燃放,每个烟花的幸福值是b.每一个单位时间内人可以走d个单位距离,起始点任意,在x位…