http://poj.org/problem?id=1037
//* @author:
import java.util.*;
public class Main{
static final int MAX=21;//���20��ľ��
static long w[][];//w�����еĸ���
static long m[][];//m�����еĸ���m[x][n]Ϊ��n��Ȳ�ͬ��ľ����ɵ�դ8�У������е�x��ľ��ʼ�ġ�M�������еĸ���
private int n;//ľ��ĸ���
private long c;//���
private boolean flag[];
private boolean print;
static {//��ʼ����̬��
w=new long[MAX][MAX];
m=new long[MAX][MAX];
w[1][1] = 1; m[1][1] = 1;
w[1][2] = 0; m[1][2] = 1;
w[2][2] = 1; m[2][2] = 0;
for (int i = 3; i < MAX; i++)
for (int j = 1; j < MAX; j++){
for (int k = 1; k < j; k++)
w[j][i] += m[k][i - 1];
for (int k = j; k < i; k++)
m[j][i] += w[k][i - 1];
}
}
public Main(int n,long c){
this.n=n;
this.c=c;
flag=new boolean[MAX];
print=false;
}
private void fand(int k, int m){
for (int i = 1; i <= m; i++)
if (flag[i] && i <= k){
k++; m++;
}
flag[k] = true;
if (print) System.out.print(" "+k);
else{
System.out.print(k);
print = true;
}
}
private void doIt(){
int k = 1;//��������ǰ���ľ������
print = false;
boolean direct = true, first = true;
while(n!=0){
if (direct)
if (c > w[k][n]){//����Ŵ����Ե�k��ľ��ʼ�ġ�w�������еĸ���˵��������������Щ����֮��
c -= w[k++][n];//���±�ţ�ͬʱ��һ��ľ��
if (first) {direct = false; k--;}//����Dz��ҵ�һ��ľ���Ҫ��"m"������
}else{
fand(k, n--);//�ҵ�k,����ľ�������1
first = false;
direct = false;
k = 1;
}
else
if (c > m[k][n]){//����Ŵ����Ե�k��ľ��ʼ�ġ�m�������еĸ���˵��������������Щ����֮��
c -= m[k++][n];//���±�ţ�ͬʱ��һ��ľ��
if (first) direct = true;//���ҵ�һ��ľ�����
}else{
fand(k, n--);
first = false;
direct = true;
}
}
System.out.println();
}
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
int t, n;
long c;
t=sc.nextInt();;
while((t--)!=0){
n=sc.nextInt();
c=sc.nextLong();
Main m=new Main(n,c);
m.doIt();
}
}
}
Meta
-
Recent Posts
Recent Comments
Archives
- May 2024
- April 2023
- February 2023
- January 2023
- December 2022
- November 2022
- September 2022
- June 2022
- July 2021
- January 2021
- February 2020
- September 2019
- March 2018
- February 2018
- August 2016
- July 2016
- June 2016
- May 2016
- April 2016
- March 2016
- February 2016
- January 2016
- December 2015
- November 2015
- October 2015
- September 2015
- August 2015
- July 2015
- June 2015
- May 2015
- April 2015
- March 2015
- February 2015
- January 2015
- December 2014
- November 2014
- October 2014
- September 2014
- August 2014
- July 2014
- June 2014
- May 2014
- April 2014
- March 2014
- February 2014
- January 2014
- December 2013
- November 2013
- October 2013
- September 2013
- August 2013
- July 2013
- June 2013
- May 2013
- April 2013
- March 2013
- February 2013
- January 2013
- December 2012
- November 2012
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- May 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- February 2011
- January 2011
- December 2010
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
Categories
