您的位置:首页 > 其它

hdu--1027-next_permutation||dfs

2014-07-23 20:22 459 查看
....连跪3把 真无语..

写完这个 看电影去了..

明天就去看 后会无期了 应该不会让人失望的

-------------碎碎念

这题 我一开始自己是用 dfs写的.. 后来看了下discuss 看到个新方法 使用stl中的next_permuntation 速度不仅快了许多 而且代码简洁..

关于 这个的介绍 传送

重点 我把它拿出来

next_permutation函数的原理如下:

在当前序列中,从尾端向前寻找两个相邻元素,前一个记为*i,后一个记为*t,并且满足*i < *t。然后再从尾端

寻找另一个元素*j,如果满足*i < *j,即将第i个元素与第j个元素对调,并将第t个元素之后(包括t)的所有元

素颠倒排序,即求出下一个序列了。

    touch me

#include <iostream>
#include <algorithm>
using namespace std;

int arr[1010];
int main()
{
int n , m;
while( cin >> n >> m )
{
for( int i = 0 ; i<n ; i++ )
{
arr[i] = i+1;
}
while(--m)
{
next_permutation(arr,arr+n);
}
for( int i = 0 ; i<n ; i++ )
{
if(i<n-1)
cout << arr[i] << " ";
else
cout << arr[i] << endl;
}
}
return 0;
}


View Code

today:

  在某个阶段,尤其当你寂寞太久的时候,有太多的冲动,把喜欢当成爱,把一秒当成永恒。然而如果不是这么地折腾,你也不会知道自己真的想要的是什么。每个人的青春里都有一条弯路,谁也没法替你走完,但未来总还在。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: