摘要: 我的第二道斜率DP。收获: 1、假设两个位置:p)的方向就会因为f的大小关系而变化,就没有凸的性质了。 2、斜率优化很难调试,所以当发现暴力DP和同样的方程被斜率优化了一下的答案不同时,不要去调试,直接去检查上面的各个函数是否写错或抄到代码中抄错了, 或者重推一遍。(注意决策点是否可能会重... 阅读全文
posted @ 2015-02-18 19:52 idy002 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 我的第一道斜率优化。就这道题而言,写出原始的方程: dp[i] = min{ dp[j] + (sum[i]-sum[j])2 + M | j in [0,i) }O(n^2)的复杂度肯定超时,要么优化转移,要么重写方程。斜率优化的思想就是减少不必要的枚举(即不枚举肯定不会成为决策点的j)。我们考... 阅读全文
posted @ 2015-02-18 18:11 idy002 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 原来的DP:dp[i][j]表示长度为i的合法串,并且它的长度为j的后缀是给定串的长度为j的前缀。转移:i==0dp[0][0] = 1 dp[0][1~m-1] = 0i>=1dp[i][0] = dp[i-1][0]*10-dp[i-1][m-1]dp[i][1] = dp[i-1][0]-(a... 阅读全文
posted @ 2015-02-18 13:56 idy002 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 正难则反前面定后面就定->枚举开头 1 /************************************************************** 2 Problem: 1008 3 User: idy002 4 Language: C++ 5 R... 阅读全文
posted @ 2015-02-18 10:59 idy002 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 本题就是求半交平面的交包含哪些直线,而且有点特殊(一般的半交平面用双端队列,因为可能转到最开始的直线,但本题不会,所以只需要一端操作就行了)。 1 /************************************************************** 2 Proble... 阅读全文
posted @ 2015-02-18 00:35 idy002 阅读(165) 评论(0) 推荐(0) 编辑