2 solutions

  • 0
    @ 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
      @ 2024-9-18 21:03:18

      油大饼吧

      • 1

      Information

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