java里面的scanf相当于js_POJ 1833 排列

题意: 给你某个排列 求从下一个排列开始的第k个排列

如果是最后一个排列 则下一个排列为1 2 3 ... n

// 1 用stl 里面的 next_permutation

// 2 用生成下一个排列算法

// 1)从末尾开始找第一个正序 A[i-1]

// 2)从i开始找最大的j A[j]>A[i-1]

// 3)交换 A[i-1],A[j]

// 4)将下标从i开始的序列翻转

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

int s[2000];

int n,k;

void change(int l,int r)

{

while(l

{

swap(s[l],s[r]);

l++;

r--;

}

}

int main()

{

int T;

int i;

scanf("%d",&T);

while(T--)

{

scanf("%d %d",&n,&k);

for(i=0;i

scanf("%d",&s[i]);

while(k--) next_permutation(s,s+n);

for(i=0;i

printf("%d ",s[i]);

printf("%d\n",s[i]);

}

return 0;

}

/* 2

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

int s[2000];

int n,k;

void change(int l,int r)

{

while(l

{

swap(s[l],s[r]);

l++;

r--;

}

}

bool permutation()

{

int i=n-1;

while(i>0&&s[i-1]>=s[i]) i--;

if(!i) return false;

int k=i,j=n-1;

for(;j>i;j--)

if(s[j]>s[i-1]){

k=j;

break;

}

swap(s[i-1],s[k]);

change(i,n-1);

return true;

}

int main()

{

int T;

int i;

scanf("%d",&T);

while(T--)

{

scanf("%d %d",&n,&k);

for(i=0;i

scanf("%d",&s[i]);

while(k--)

{

if(!permutation())

change(0,n-1);

}

for(i=0;i

printf("%d ",s[i]);

printf("%d\n",s[i]);

}

return 0;

}

*/

poj 1833 排列 STL 全排列公式

排列 Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 15173   Accepted: 6148 Description 题 ...

POJ 1833 排列【STL/next_permutation】

题目描述: 大家知道,给出正整数n,则1到n这n个数可以构成n!种排列,把这些排列按照从小到大的顺序(字典顺序)列出,如n=3时,列出1 2 3,1 3 2,2 1 3,2 3 1,3 1 2,3 2 ...

POJ 1833 生成排列

题目链接:POJ 1833 /************************************ * author : Grant Yuan * time : 2014/10/19 16:38 ...

poj 1833

http://poj.org/problem?id=1833 next_permutation这个函数是用来全排列的,按字典的序进行排列,当排列无后继的最大值时,会执行字典升序排列,相当于排序: 当排 ...

POJ 1833 排序

http://poj.org/problem?id=1833 题意: 给出一个排序,求出它之后的第k个排序. 思路: 排序原理: 1.如果全部为逆序时,说明已经全部排完了,此时回到1~n的排序. 2. ...

POJ 题目分类(转载)

Log 2016-3-21 网上找的POJ分类,来源已经不清楚了.百度能百度到一大把.贴一份在博客上,鞭策自己刷题,不能偷懒!! 初期: 一.基本算法: (1)枚举. (poj1753,poj2965 ...

(转)POJ题目分类

初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推. ...

poj分类

初期: 一.基本算法:      (1)枚举. (poj1753,poj2965)      (2)贪心(poj1328,poj2109,poj2586)      (3)递归和分治法.      ( ...

poj 题目分类(1)

poj 题目分类 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K--0.50K:中短代码:0.51K--1.00K:中等代码量:1.01K--2.00K:长代码:2.01 ...

随机推荐

Invalid layout param in a LinarLayout: layout_weight

android:layout_weight只适用于线性布局LinearLayout,不适用于相对布局RelativeLayout.

BZOJ 2733 & splay的合并

题意: 带权联通块,添边与查询联通块中第k大. SOL: splay合并+并查集. 我以为splay可以用奇技淫巧来简单合并...调了一下午终于幡然醒悟...于是就只好一个一个慢慢插...什么启发式合 ...

清除VS2012生成的不必要文件

VS2012生成的项目文件中会有一个与解决方案同名的sdf文件,并且比较大,可以删除的,具体方法如下: 英文版步骤如下: Tools->Options->Text Editor->C ...

JAVA虚拟机简介

Java虚拟机定义 Java虚拟机有多层含义 一套规范:Java虚拟机规范.定义概念上Java虚拟机的行为表现 一种实现:例如HotSpot,J9,JRockit.需要实现JVM规范,但具体实现方式不 ...

.net面试题大全(有答案)

在网上找来的,希望对大家有所帮助.     1 (1)面向对象的语言具有__继承性_性._封装性_性._多态性 性. (2)能用foreach遍历访问的对象需要实现 _ IEnumerable 接口或 ...

TP-LINK 路由器怎么设置

TP-LINK 路由器怎么设置... ----------------------- 1.线路连接: 没有使用路由器时,电脑直接连接宽带上网,现在使用路由器共用宽带上网,则需要用路由器来直接连接宽带. ...

cin\cout输入输出控制

输入输出流的控制符 控制符 作 用 dec 设置数值的基数为10 hex 设置数值的基数为16 oct 设置数值的基数为8 setfill(c) 设置填充字符c,c可以是字符常量或字符变量 setpr ...

使用guava变形数据结构

在java日常开发中,经常需要使用各种数据结构,在涉及到数据结构之间如何优雅的转换时,我们可以借助google的guava提供的相关功能来优雅的实现.以下记录一些开发中经常需要使用数据结构的变形,以便 ...

HNOI2019

省选总结 day0 写了下平时不经常写的模板,像什么\(LCT\),圆方树,\(exlucas\)之类的,但是一个都没考. day1 提前十几分钟进了考场,可以提前动电脑,赶紧把\(vimrc\)打了 ...

codeforces#518 Div2 ABCDE

A---Birthday http://codeforces.com/contest/1068/problem/A 题意: 有n种硬币,m个人.m个人要给Ivan送硬币,每个人送的硬币都要互不相同但数 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值