poj 1833 排列

越来越不会做题了,心静不下来,我到底该如何做呢 ?马上就要选拔赛了,我该抓紧时间练习的难过这题还是看的网上的答案,甚至看懂之后我自己都懒得去写了,直接复制粘贴,难过我用的是全排列,搜索到某个排列之后向下计时搜索,结果TLE了,最烦这个错误了,基本上是算法错误,得重写,好久没有连着刷几题的感觉了,或许从来都没有过吧,ACM实验室,挺想进去的,我得抽出时间来做题了,希望还有时间留给我。

    看了网上别人写的思路:

如果想求一个排列的下一个排列,就从倒数第二个数开始找到第一个满足ai<ai+1的数,即两个相邻的左边小于右边的数,因为下一个排列肯定比当前排列要大,而且是正好比它大,所以呢,要从ai+1……an中找到最小的大于ai的数aj,然后交换ai和aj,再把aj……an重新排序,就是答案;

例如:1 3 4 2;第一个ai<aj的是ai=3,而且最小的大于ai的是aj=4;交换之后:1 4 3 2;然后将3 2重新排序成2 3;

所以最后的答案就是1 4 2 3 

鉴于我提交的答案是别人所写的,所以就不附代码了,哎,心烦。。。难过

你可能感兴趣的:(poj 1833 排列)