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 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值