1 solutions

  • -1
    @ 2024-6-4 17:08:10

    枚举O(n)O(n)

    每次从后往前枚举,判断当前这个字符是否可以增加

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
    	int a,b,n;
    	string s;
    	cin>>a>>b>>n>>s;
    	a--,b--;
    	for(int i=0;i<5;i++)
    	{
    		int k=n-1;
    		while(k>=0&&b-(s[k]-'a'+1)<n-1-k) k--;  //s[k]+1到b不够放到n-1到k之中
    		if(k<0) break; //找不到
    		for(int j=k,c=s[k]+1;j<n;j++,c++) //从k开始往后放
    		{
    			s[j]=c;
    		}	
    		cout<<s<<endl;	
    	} 
    	return 0;
    }
    
    • 1

    Information

    ID
    415
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    9
    Tags
    # Submissions
    10
    Accepted
    6
    Uploaded By