摘要:
思路 :题意描述我也很绝望 。先说一下题意 : 给定长度为n数组a [ ],求a[ ] 的一个最大子序列(可以不连续),使得b [ i ]& b [ i - 1 ] ! = 0.求最大的 b数组的长度 题解:显然是DP,状态转移方程显然是dp[ i ] = m a x { dp [ k ] + 1 阅读全文
摘要:
思路 :题意描述我也很绝望 。先说一下题意 : 给定长度为n数组a [ ],求a[ ] 的一个最大子序列(可以不连续),使得b [ i ]& b [ i - 1 ] ! = 0.求最大的 b数组的长度 题解:显然是DP,状态转移方程显然是dp[ i ] = m a x { dp [ k ] + 1 阅读全文
摘要:
思路 :依旧是 分块 块内按照 r 排序 不同块按照 L排序,处理好增加 删除对结果的影响即可。 阅读全文
摘要:
思路 :分块 思想 处理离线查询操作 对查询进行排序 在同一块内的按照 r 进行排序 不同块 的按照 L进行排序。 #include<bits/stdc++.h> using namespace std; #define maxn 56789 int n,m,col[maxn],cnt[maxn], 阅读全文
摘要:
dp[i]=min(dp[j]+(sum[i]-sum[j]+i-j-1-L)^2) (j=f[j](显然) 证明完毕 2.求斜率方程 因为dp[k]+(f[i]-f[k]-c)^2 using namespace std; #define ll long long #define maxn 56789 ll n,l,s[maxn],dp[maxn]; int head,tail,q[ma... 阅读全文
摘要:
思路 : 1,用一个单调队列来维护解集。 2,假设队列中从头到尾已经有元素a b c。那么当d要入队的时候,我们维护队列的下凸性质, 即如果g[d,c]<g[c,b],那么就将c点删除。直到找到g[d,x]>=g[x,y]为止,并将d点加入在该位置中。 3,求解时候,从队头开始,如果已有元素a b 阅读全文
|