这题题意大致是这样:给你正整数n,用最少的操作数把序列1,2....n中所有数变成0.每次操作可以从序列中选择一个或者多个整数,同时减去一个相同的正整数。
比如当n==3时,1 2 3,先将2,3同时减去2,变成1 0 1。
这题,我花了好长的时间才堪堪摸到一点明悟,比如1 2 3 4 5 6 ,肯定得把大的数先变的尽可能的小,试过从统统减去3,这样就变成了1 2 0 1 2 3.注意到序列中又出现了1 2 3.而1 2 0 这个序列不会影响最后的结果的。所以,就有了f(n)=f(n/2)+1,这个递推式啦,边界条件当然是f(1)==1喽~~~这道题就这样愉快的ac啦~~~
今天的第一题就这样理解喽~~~
4727

被折叠的 条评论
为什么被折叠?



