Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

应该是f[i][0]=max(f[j][0],f[j][1])+max(f[k][0],f[k][1]).....吧?

Posted by alpc16 at 2007-08-15 11:45:46 on Problem 3342
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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator