★1.5 Number Triangles 数字金字塔
考虑在下面被显示的数字金字塔.写一个程序来计算从最高点开始在底部任意处结束的路径经过数字的和的最大.每一步可以走到左下方的点也可以到达右下方的点.73 88 1 02 7 4 44 5 2 6 5在上面的样例中,从7 到 3 到 8 到 7 到 5 的路径产生了最大和:30PROGRAM NAME: numtri18INPUT FORMAT...
                            
                            
                                分类:
其他好文   时间:
2014-09-11 23:58:22   
                                阅读次数:
1440
                             
                         
                    
                        
                            
                            
                                一.POJ 1157 小花店问题
dp[i][j]表示前i朵花放入前j个瓶子得到的最大价值。
因为要求j>i,所以有两种放法:
(1)当i=j的时候dp[i][j]=v[1][1]+v[2][2]+v[i][j]+……
(2)当j>i的时候dp[i][j]=max(dp[i][j-1],dp[i-1][j-1]+v[i][j]);
#pragma comment(linker, "/ST...
                            
                            
                                分类:
其他好文   时间:
2014-09-10 16:00:00   
                                阅读次数:
157
                             
                         
                    
                        
                            
                            
                                问题描述:序列X={x1,x2,…,xn},Y={y1,y2,…,yn},当Z={z1,z2…,zn}是X的严格递增下标顺序(可以不连续)的子集,也是Y的严格递增下标顺序(可以不连续)的子集,则Z是X和Y的公共子序列。例如X={A,B,C,B,D,A,B},Y={B,D,C,A,B,A},{B,C,A}、{B,C,B,A}、{B,D,A,B}都是X和Y的公共子序列。其中最长的公共子序列叫做Long...
                            
                            
                                分类:
其他好文   时间:
2014-09-10 15:53:20   
                                阅读次数:
317
                             
                         
                    
                        
                            
                            
                                0-1背包问题: 
       有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。
       这个问题的特点是:每种物品只有一件,可以选择放或者不放。
算法基本思想:
      利用动态规划思想 ,子问题为:f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。
...
                            
                            
                                分类:
其他好文   时间:
2014-09-09 21:34:59   
                                阅读次数:
406
                             
                         
                    
                        
                            
                            
                                Palindrome Partitioning
 Total Accepted: 18096 Total
 Submissions: 69797My Submissions
Given a string s, partition s such that every substring of the partition is a palindrome.
Return all...
                            
                            
                                分类:
其他好文   时间:
2014-09-09 18:29:29   
                                阅读次数:
205
                             
                         
                    
                        
                            
                            
                                题意:。。。给定一个矩阵,每个点有一堆金币,自己在(0,1),然后各种跳,求最大收益(具体自己看)
传说中的省选第二题,当时写的爆搜20分,现在想想把深搜改成广搜再加个记忆化不就切了么。。。不过这题要开滚动数组 直接交MLE
我自然溢出的队列居然写挂了。。。直接把h-1写在中括号里会强制类型转换成int导致调用q[-1] 所以只能这样了
交的人好少。。这题也没啥意思 水水就切了
注意这题无...
                            
                            
                                分类:
其他好文   时间:
2014-09-09 18:25:49   
                                阅读次数:
233
                             
                         
                    
                        
                            
                            
                                本题使用动态规划法思想。
因为需要一步一步地替换相对应的数字的,如果直接模拟,那么就需要大量插入和删除操作,最快也需要lg(n)的效率,但是最后数列就会变得非常长,这样最后计算结果遍历一次也会超时的。故此使用数据结构加速替换操作,并不是好办法。
这就使用动态规划法从后往前替换,相当于路径压缩了,一步直接把数字替换成最终结果的数字。
也要记录好每个数字最终替换成多少个数位,以便正确计算结果。
可以画树来模拟一下替换操作,那么从叶子节点往根节点替换数字,把所有的路径都直接压缩起来。...
                            
                            
                                分类:
其他好文   时间:
2014-09-09 13:11:48   
                                阅读次数:
259
                             
                         
                    
                        
                            
                            
                                Regular Expression MatchingProblem description:Implement regular expression matching with support for'.'and'*'.'.' Matches any single character.'*' Ma...
                            
                            
                                分类:
其他好文   时间:
2014-09-09 11:37:58   
                                阅读次数:
281
                             
                         
                    
                        
                            
                            
                                思路: 其实答案就是 C(m+n-2, m-1). 但是写程序利用动态规划会简单快捷。(给两个代码,第一个方便理解,第二个是基于第一个的优化)
思路:同上,只是最初初始化全 0 . 当前位置为 1 时,则当到达前位置的步数为 0.
                            
                            
                                分类:
其他好文   时间:
2014-09-09 10:29:48   
                                阅读次数:
255