题目链接:click here~
刚看完一些贪心的题目,看此题就特别想用贪心。。谁知走到死胡同里了(虽然此题的解法就是排序的贪心)。。我先根据字典序从大到小给数字排序,然后再各种分情况,比如945 94,应该选94 在前面因为前者最后一个是5比9小,类似这种,WA了3回然后上uvatoolkit测试数据,测试了1000组数据错了10组,仔细研究了下,顿时让我心碎了,这个思路根本不对头。。虽然能通过很多数据。。
此题思路是:想取得最大的数字,首先肯定前面的要大,全部的最大等同于与局部最大的排在前面,就是说答案里第一个数字和第二个数字的序列一定比任何一个2个数字的序列都要大,除了第一个数字,第二个数字与第三个数字的序列比任何一个2个数字的序列都要大,总结下来就是把qsort的cmp写成如果数字1加数字2大于数字2加数字1,那就把数字1排在数字2前面,这样下去就一定能得到我刚才说的。很有技巧的一道题目
AC代码: