⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 toj a.txt

📁 ACM资料大集合
💻 TXT
字号:
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <math.h>
#include <stdlib.h>
//#include <time.h>
using namespace std;

#define NMAX 28
char song[NMAX][105];
long long jinzhi[NMAX];

long long solve(long long num,long long k)
{
	long long tan;
	long long tiao;//第tan字典序
	long long i,geshu,yushu;//某tan字典序里的第geshu个序列,序列里的第yushu个数
	long long flag=0;
	tan=1;
	k--;
	tiao=0;
	for(tan=1;tan<=num;tan++)
	{
		tiao+=tan*(long long)(pow(num,tan));
		if(tiao>100000000) {flag=1;break;}
	}
	if(flag==0) k=k%tiao;
	tan=1;
	while(k-tan*pow(num,tan)>=0) 
	{
//		prlong longf("每堂急案%d\n",tan*(long long)(pow(num,tan)));
		k-=tan*(long long)(pow(num,tan));
		tan++;
		if(tan==num+1) tan=1;
	}
//	prlong longf("tan=%d\n",tan);
	geshu=k/tan;
	yushu=k%tan;
//	prlong longf("k=%d geshu=%d yushu=%d\n",k,geshu,yushu);
	for(i=1;i<=tan;i++)
	{
		jinzhi[i]=geshu%num;
		geshu/=num;
	}
//	for(i=1;i<=tan;i++)
//		prlong longf("%d",jinzhi[i]);
//	prlong longf("\n");
	return jinzhi[tan-yushu]+1;
}

int main()
{
	long long num,i,k,qnum;
	cin>>num>>qnum;
	while(!(num==0 && qnum==0))
	{
		for(i=1;i<=num;i++)
			cin>>song[i];
		for(i=1;i<=qnum;i++)
		{
			cin>>k;
			printf("%s\n",song[solve(num,k)]);
		}
		printf("\n");
		cin>>num>>qnum;	
	}
	return 0;
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -