poj 3373 比较好的搜索 ,思路特别好

 

【题意】

给出n和k,求一个数m,m是满足所有以下4个条件的数:(1)与n位数相同 (2)能被k整除(3)与n相同位的数不相同最少(4)满足以上3个条件的最小值。其中 1≤n≤10100 , 1≤k≤104, kn

 

思路,这个是看了一点别人的思路,想不出入手的方向。

首先这道题太大,用模除这一点能想到,然后考虑到数据 是10^4 的,那么 一定能在小于4位改变内,得到结果,因为10^4个数,一定能找到一个数q,(n-10^4)== k-q(modk) 。这一步剪枝十分重要。

然后还要对状态进行表示 这一步也是想不到的。记忆化,而且怎么记忆话, 

需要分析到的地方是,前k位改变p次的模除值会有很多相同的,而我们只要里面最小的。这一步也可以剪枝,所以可以记忆化。他们的同意特征就是 模除值相同 并且都只改变 了p次。找到最小值那么就可以从高位往低位找。

 

主要要分析到,模除值相同的 地方剪枝取最小 ,并且怎么表示。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值