hdu2296

此题在我优化后居然排rank1 哈哈。。。。


dp方程就是dp【i】【j】表示串长度为i的时候,在字典树节点为j的时候分值最大,但是由于要输出串,那么就用path【i】【j】表示dp【i】【j】时候字典序最小的串,可是你总不能用个string数组来表示这个串把,(貌似可以这么搞。。。)那样会比较慢的。由于每个串在ac自动机中有个标识,我只需要记录标识就可以了,我在建树的时候用个数组存当前节点字符,那么到时候比较的时候就方便很多了。然后就是输出的问题。正如网上所说,倒转插入字典序就好了。然后还有个地方,由于可能会出现价值相等的串那么就要比较长度,比较这个就一直向前比较啊,由于反向输入串,向前比较就相当于向后比较了。

还有就是当价值为0的时候要输出空串啊。。啊。啊。啊。啊。

dp[i][j]表示长度为i的时候,在Trie上的第j个结点时的最大分值,path[i][j]表示状态(i,j)时的字典序最小的串。

当最大值的为0的时候,输出空串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值