BZOJ 3357--[Usaco2004]等差数列(STL&DP)】的更多相关文章

dp(x, p) 表示序列中第x个数, 上一个数是p构成的等差数列的最长. 转移时从[1, x)中枚举p = seq[] 就行了.时间复杂度O(n²logn) --------------------------------------------------------------------------------- #include<bits/stdc++.h>     #define rep(i, n) for(int i = 0; i < n; i++) #define Rep…
3357: [Usaco2004]等差数列 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 338  Solved: 160[Submit][Status][Discuss] Description     约翰发现奶牛经常排成等差数列的号码.他看到五头牛排成这样的序号:“1,4,3,5,7” 很容易看出“1,3,5,7”是等差数列.     给出N(1≤N≤2000)数字AI..AN(O≤Ai≤10^9),找出最长的等差数列,输出长度. Inpu…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3357 题意: 给你n个数a[i],让你找出一个最长的是等差数列的子序列. 题解: 表示状态: dp[i][a[j]] = max len 表示当前选了a[i],上一个数是a[j]时,最长的等差数列长度. 找出答案: max dp[i][a[j]] 如何转移: map<int,int> dp[MAX_N]; dp[i][a[j]] = max dp[a[j]][2*a[j] - a[i]…
Code: #include<bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) #define maxn 2003 using namespace std; map<int,int>k; int arr[maxn],f[maxn][maxn]; int main() { // setIO("input"); int n,ans=0; scanf("…
3357: [Usaco2004]等差数列 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 516  Solved: 241[Submit][Status][Discuss] Description     约翰发现奶牛经常排成等差数列的号码.他看到五头牛排成这样的序号:“1,4,3,5,7” 很容易看出“1,3,5,7”是等差数列.     给出N(1≤N≤2000)数字AI..AN(O≤Ai≤10^9),找出最长的等差数列,输出长度. Inpu…
3357: [Usaco2004]等差数列 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 321  Solved: 153[Submit][Status][Discuss] Description     约翰发现奶牛经常排成等差数列的号码.他看到五头牛排成这样的序号:“1,4,3,5,7” 很容易看出“1,3,5,7”是等差数列.     给出N(1≤N≤2000)数字AI..AN(O≤Ai≤10^9),找出最长的等差数列,输出长度. Inpu…
数据范围这么小..怎么乱搞都可以吧... 先排序一遍然后O(n²) dp ------------------------------------------------------------------ #include<bits/stdc++.h>   using namespace std;   const int maxn = 109;   struct R { int x, y; inline void Read() { scanf("%d%d", &x…
[Usaco2004]等差数列 题目大意:约翰发现奶牛经常排成等差数列的号码.他看到五头牛排成这样的序号:“1,4,3,5,7”很容易看出“1,3,5,7”是等差数列.给出N(1≤N≤2000)数字AI..AN(O≤Ai≤10^9),找出最长的等差数列,输出长度. 数据范围:如题面. 题解: 以为是啥神仙题,结果看见了$1\le N\le 2000$. 可以$N^2$啊....... 考虑$DP$呗,设$f_{(i, j)}$表示第$A_i$个数为等差数列第一项,$A_j$为等差数列第二项的最长…
Bzoj 1131[POI2008]STA-Station (树形DP) 状态: 设\(f[i]\)为以\(i\)为根的深度之和,然后考虑从他父亲转移. 发现儿子的深度及其自己的深度\(-1\) 其余的\(+1\),记录一下\(size\)就ok了 转移: \(f[i] = f[fa] + n - 2 * size[i]\) 记忆化搜索即可. Bzoj 可能过不了,原因貌似是栈空间不足,可以去洛谷提交,我这里的解决方法是.记忆化搜索的时候用\(n\)作为开头.然后就过了. #include <i…
[BZOJ 4332] [JSOI2012]分零食(DP+FFT) 题面 同学们依次排成了一列,其中有A位小朋友,有三个共同的欢乐系数O,S和U.如果有一位小朋友得到了x个糖果,那么她的欢乐程度就是\(f(x)=Ox^2+Sx+U\) 现在校长开始分糖果了,一共有M个糖果.有些小朋友可能得不到糖果,对于那些得不到糖果的小朋友来说,欢乐程度就是1.如果一位小朋友得不到糖果,那么在她身后的小朋友们也都得不到糖果.(即这一列得不到糖果的小朋友一定是最后的连续若干位) 所有分糖果的方案都是等概率的.现在…