Redian新闻
>
知道释迦牟尼是怎么来的吗?<转载>
avatar
知道释迦牟尼是怎么来的吗?<转载># Joke - 肚皮舞运动
r*m
1
有朋友提到不知道怎么做DP的题目,分享一下自己的总结,希望对大家有帮助。
1. Distinct Subsequence (String S, String T)
F(i, j) = F(i-1, j) , S[i] != T[j]
F(i-1, j) + F(i-1, j-1) , S[i] ==T[j]
2. Longest Common Subsequence (String S1, String S2)
F(i, j) = F(i-1, j-1) + 1, S[i] == T[j]
Max{ F(i-1, j), F(i, j-1) }, S[i] !=T[j]
LCS可以把空间复杂度O(n^2)减少到O(n),因为第n步的DP只 和前一步(第n-1步)的
最优子结果有关 F(n) = F(n-1)
3. Edit Distance (String S1, String S2)
F(i, j) = Min { F(i-1, j) + 1, F(i, j-1) + 1, F(i-1, j-1) } , S1[i
] == S1[j]
Min { F(i-1, j) + 1, F(i, j-1) + 1, F(i-1, j-1) + 1 }, S1[i
] != S1[j]
注意: 动态规划初始化
for (int i = 0; i <= len1; i++) {
d[i][0] = i;
}
4. Unique path
F(i, j) = F(i-1, j) + F(i, j-1)
5. Longest Substring without Repeating Characters
F(i) = F(i-1) + 1, S[i] doesn't appear before
Min{ F(i-1) + 1, i - map.get(S[i]) }
6. Maximum sub-array
F(i) = F(i-1) + A[i], F(i-1) > 0
= A[i] , F(i-1) <= 0
7. Palindrome
F(j) = isPalindrome( i…j ) && F(i)
P(i, j) = P(i+1, j-1) from bottom left corner
8. Minimal coins
F(n) = Min{ F(n-a[i])} i = 0…m (m coins)
9. Regular expression
if(p[j] == '*')
d(i, j) = d(i, j-2) || d(i, j-1) | d(i-1, j)
10. Interleave string
a[i][j] = (a[i-1][j] && s1.charAt(i-1) == s3.charAt(i+j-1))
|| (a[i][j-1] && s2.charAt(j-1) == s3.charAt(i+j-1));
avatar
d*r
2
作者:张宝胜之爹  ========
知道释迦牟尼是怎么来的吗?
释迦牟尼他爹跟他娘,两人在床上操逼,他爹的鸡巴有多大,俺不知道,当初
要是派首席牛人拿着尺子去量量就好了,估计他娘当时肯定叫床了,等他爹射精了,他
爹的精子顺着他娘的阴道跑到了子宫,跟他娘的卵子结合,在结合的那一刹那,释迦牟
尼形成了,再经过十个月的怀胎,他从他娘的阴道里爬了出来,阿尼诞生了,释迦牟尼
开始慢慢成长,随着时间的推移,他身上的各种器官也开始发育,到十八岁的时候,他
身上的鸡巴,睾丸,屁眼都长得比较完善了,所以他爹就给他娶媳妇,娶了几个不知道
,但他是王子,估计怎么也得十个,八个的吧,他每天在宫里呆也没什么事,那干嘛呀
,打炮儿呗,所以他的鸡巴也得硬起来,不硬起来你怎么往逼里面插呀,可时间一长,
估计是射得太多了,他觉得没意思,就去修行了,后来得道成了佛。
古印度语,释迦是首席的意思,牟尼是炮儿爷的意思,所以把他的名字翻译过来就
是首席炮儿爷。
avatar
n*e
3
mark

【在 r****m 的大作中提到】
: 有朋友提到不知道怎么做DP的题目,分享一下自己的总结,希望对大家有帮助。
: 1. Distinct Subsequence (String S, String T)
: F(i, j) = F(i-1, j) , S[i] != T[j]
: F(i-1, j) + F(i-1, j-1) , S[i] ==T[j]
: 2. Longest Common Subsequence (String S1, String S2)
: F(i, j) = F(i-1, j-1) + 1, S[i] == T[j]
: Max{ F(i-1, j), F(i, j-1) }, S[i] !=T[j]
: LCS可以把空间复杂度O(n^2)减少到O(n),因为第n步的DP只 和前一步(第n-1步)的
: 最优子结果有关 F(n) = F(n-1)
: 3. Edit Distance (String S1, String S2)

avatar
l*o
4
avatar
H*7
5
fucking nice!thanks1
avatar
r*e
6
总结得不错,不过第五个其实不算DP吧,更类似于贪心。
avatar
r*e
7
第三个
F(i, j) = F(i-1, j-1) , S1[i
] == S1[j]
F(i, j) = Min { F(i-1, j) + 1, F(i, j-1) + 1, F(i-1, j-1) + 1 }, S1[i
] != S1[j]
就行了,不用
avatar
t*o
8
mark
avatar
a*e
9
留名
avatar
t*3
10
也想说这个,幸好看了回帖。还是赞一下楼主。

i

【在 r*******e 的大作中提到】
: 第三个
: F(i, j) = F(i-1, j-1) , S1[i
: ] == S1[j]
: F(i, j) = Min { F(i-1, j) + 1, F(i, j-1) + 1, F(i-1, j-1) + 1 }, S1[i
: ] != S1[j]
: 就行了,不用

avatar
j*3
11
nice
avatar
r*m
12
有朋友提到不知道怎么做DP的题目,分享一下自己的总结,希望对大家有帮助。
1. Distinct Subsequence (String S, String T)
F(i, j) = F(i-1, j) , S[i] != T[j]
F(i-1, j) + F(i-1, j-1) , S[i] ==T[j]
2. Longest Common Subsequence (String S1, String S2)
F(i, j) = F(i-1, j-1) + 1, S[i] == T[j]
Max{ F(i-1, j), F(i, j-1) }, S[i] !=T[j]
LCS可以把空间复杂度O(n^2)减少到O(n),因为第n步的DP只 和前一步(第n-1步)的
最优子结果有关 F(n) = F(n-1)
3. Edit Distance (String S1, String S2)
F(i, j) = Min { F(i-1, j) + 1, F(i, j-1) + 1, F(i-1, j-1) } , S1[i
] == S1[j]
Min { F(i-1, j) + 1, F(i, j-1) + 1, F(i-1, j-1) + 1 }, S1[i
] != S1[j]
注意: 动态规划初始化
for (int i = 0; i <= len1; i++) {
d[i][0] = i;
}
4. Unique path
F(i, j) = F(i-1, j) + F(i, j-1)
5. Longest Substring without Repeating Characters
F(i) = F(i-1) + 1, S[i] doesn't appear before
Min{ F(i-1) + 1, i - map.get(S[i]) }
6. Maximum sub-array
F(i) = F(i-1) + A[i], F(i-1) > 0
= A[i] , F(i-1) <= 0
7. Palindrome
F(j) = isPalindrome( i…j ) && F(i)
P(i, j) = P(i+1, j-1) from bottom left corner
8. Minimal coins
F(n) = Min{ F(n-a[i])} i = 0…m (m coins)
9. Regular expression
if(p[j] == '*')
d(i, j) = d(i, j-2) || d(i, j-1) | d(i-1, j)
10. Interleave string
a[i][j] = (a[i-1][j] && s1.charAt(i-1) == s3.charAt(i+j-1))
|| (a[i][j-1] && s2.charAt(j-1) == s3.charAt(i+j-1));
avatar
n*e
13
mark

【在 r****m 的大作中提到】
: 有朋友提到不知道怎么做DP的题目,分享一下自己的总结,希望对大家有帮助。
: 1. Distinct Subsequence (String S, String T)
: F(i, j) = F(i-1, j) , S[i] != T[j]
: F(i-1, j) + F(i-1, j-1) , S[i] ==T[j]
: 2. Longest Common Subsequence (String S1, String S2)
: F(i, j) = F(i-1, j-1) + 1, S[i] == T[j]
: Max{ F(i-1, j), F(i, j-1) }, S[i] !=T[j]
: LCS可以把空间复杂度O(n^2)减少到O(n),因为第n步的DP只 和前一步(第n-1步)的
: 最优子结果有关 F(n) = F(n-1)
: 3. Edit Distance (String S1, String S2)

avatar
l*o
14
avatar
H*7
15
fucking nice!thanks1
avatar
r*e
16
总结得不错,不过第五个其实不算DP吧,更类似于贪心。
avatar
r*e
17
第三个
F(i, j) = F(i-1, j-1) , S1[i
] == S1[j]
F(i, j) = Min { F(i-1, j) + 1, F(i, j-1) + 1, F(i-1, j-1) + 1 }, S1[i
] != S1[j]
就行了,不用
avatar
t*o
18
mark
avatar
a*e
19
留名
avatar
t*3
20
也想说这个,幸好看了回帖。还是赞一下楼主。

i

【在 r*******e 的大作中提到】
: 第三个
: F(i, j) = F(i-1, j-1) , S1[i
: ] == S1[j]
: F(i, j) = Min { F(i-1, j) + 1, F(i, j-1) + 1, F(i-1, j-1) + 1 }, S1[i
: ] != S1[j]
: 就行了,不用

avatar
j*3
21
nice
avatar
n*2
22
mark
avatar
g*r
23
mark

【在 r****m 的大作中提到】
: 有朋友提到不知道怎么做DP的题目,分享一下自己的总结,希望对大家有帮助。
: 1. Distinct Subsequence (String S, String T)
: F(i, j) = F(i-1, j) , S[i] != T[j]
: F(i-1, j) + F(i-1, j-1) , S[i] ==T[j]
: 2. Longest Common Subsequence (String S1, String S2)
: F(i, j) = F(i-1, j-1) + 1, S[i] == T[j]
: Max{ F(i-1, j), F(i, j-1) }, S[i] !=T[j]
: LCS可以把空间复杂度O(n^2)减少到O(n),因为第n步的DP只 和前一步(第n-1步)的
: 最优子结果有关 F(n) = F(n-1)
: 3. Edit Distance (String S1, String S2)

avatar
g*y
24
mark
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。