| ||||||||||
Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
应该是f[i][0]=max(f[j][0],f[j][1])+max(f[k][0],f[k][1]).....吧?In Reply To:Re:我的做法是这样的... ... Posted by:Thank_you at 2007-08-15 10:32:58 g[i][0]与g[i][1]的求法好像有点不一样吧? g[i][0]表示i点不去时获得最大值的方法有多少种,所以g[i][0]的求法应该是 g[i][0]=g[j][?]*g[k][?]*......(j,k是i的儿子) ?号表式获取最大值的决策。而且中间还得考虑f[j][0]和f[j][1]相等的情况,因为若两种情况相等,则任选一种都满足。这样一来就显得复杂一些了。 同样,g[i][1]表示i点去时获得最大值的方法有多少种,这种情况比较简单, g[i][1]=g[j][0]*g[k][0]*.......(j,k是i的儿子) 不过这样一来就觉得烦琐了,但是由于题目要求的并非是方法数,而只要判断方法数是否唯一就行了,因此我觉得对g数组进行一下改进,用bool型来表示是否唯一即可,为真时方法唯一否则不唯一,则有: 当儿子的方法存在不唯一或存在f[j][0]==f[j][1]则g[i][0]为false,否则为true。 而求g[i][1]则应该是g[j][0]&&g[k][0]&&....... 这样一来应该是简单一些了,但暂时我还没有实现,所以不知道这样分析是否正确。哪位大牛帮忙看一下吧。 Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator