【题意】
给出n和k,求一个数m,m是满足所有以下4个条件的数:(1)与n位数相同 (2)能被k整除(3)与n相同位的数不相同最少(4)满足以上3个条件的最小值。其中 1≤n≤10100 , 1≤k≤104, k≤n
思路,这个是看了一点别人的思路,想不出入手的方向。
首先这道题太大,用模除这一点能想到,然后考虑到数据 是10^4 的,那么 一定能在小于4位改变内,得到结果,因为10^4个数,一定能找到一个数q,(n-10^4)== k-q(modk) 。这一步剪枝十分重要。
然后还要对状态进行表示 这一步也是想不到的。记忆化,而且怎么记忆话,
需要分析到的地方是,前k位改变p次的模除值会有很多相同的,而我们只要里面最小的。这一步也可以剪枝,所以可以记忆化。他们的同意特征就是 模除值相同 并且都只改变 了p次。找到最小值那么就可以从高位往低位找。
主要要分析到,模除值相同的 地方剪枝取最小 ,并且怎么表示。