Noip DP 总结 1

来源:互联网 发布:顽固软件卸载 编辑:程序博客网 时间:2024/06/10 05:46

对各位学NOI的大佬对于DP的总结的总结。


———-DP数据范围:———

1} 15,20        -> 状压/暴搜2} 30       -> 折半搜索-二分搜索3} 50       -> N^4 DP4} 100~200         -> Floyed,图论等5} 1000~2000   -> N^2 DP6} 1e5      -> ……可能不是DP7} 1e6      -> 贪心,分治8} 1e10~1e12   -> 矩阵/快速幂

———DP如何思考:———

A}范围    a} 8~20        状压   看地图,枚举    b} 300~500     N^3   区间DP,dp[i][j]枚点    c} 1000~5000   N^2   dp[i] || dp[i][j] 看题意B}优化a} 可以二分:最长不下降,树上倍增     b} 单调队列

———DP能解决的问题:———

A}以位置定义状态    a} 最长不下降 O(N^2,N*logN)  --> dp[i]  &  贪心    b} 最长公共子序列 O(N^2)   --> dp[i][j]    c} 状压DP         --> dp[state]    d} 线形DP --> 树形DP        --> dp[i]B}以空间定义状态    a} 背包问题 --> f[i][j]    -> 压缩状态不能为负 -> f[j-w[i]]+v[i].(01<-反向,完全<-正向)    b} 弗洛伊德 --> f[k][i][j] -> f[i][k]+f[k][j];    c} 字符串   --> f[n][k]    -> n:位置 k:取k段

——–DP注意事项:——–

  • 自己搞状态数量,如果需要暴搜(2^n,n^m,n!,C(n,m)),并尽可能地剪枝。

  • 注意DP的优化与降维

原创粉丝点击