【2006NOIP普及组】T3 Jam的计数法

P1061 Jam的计数法
题目传送门

#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<string>
#include<algorithm>
#include<vector>
#define fre(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout);
using namespace std;
const int MAX=2147483647;
const int N=1e6;
int st,ed,w,tot;
string num;
char f[100],d[100];
void add(int i)
{
	num[i]+=1;
	for(int j=i+1;j<w;j++) num[j]=num[j-1]+1;	
	tot++;
	cout<<num<<endl;
	if(tot==5) exit(0);
}
int main()
{
	//fre(count);
	scanf("%d%d%d",&st,&ed,&w);
	cin>>num;
	f[0]='a'+st-2;
	for(int i=1;i<=ed-st+1;i++)	f[i]=f[i-1]+1;
	int j=ed-st+1;
	for(int i=w-1;i>=0;i--) d[i]=f[j],j--;
	for(int i=w-1;i>=0;i--)
	{
		if(num[i]<d[i]) 
		{
			add(i);
			for(int j=w-1;j>=i;j--) 
			{
				int temp=num[j];
				while(num[j]<d[j]) add(j);
			}
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/bigwinner888/article/details/105936111