6.4 VJ E - K-th Beautiful String
Posted syrupwrld999
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6.4 VJ E - K-th Beautiful String相关的知识,希望对你有一定的参考价值。
#include<bits/stdc++.h>
#define ll long long
#define speed_up ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
const ll nl=1e18;
/*
通过找规律发现题中样例从下往上看,可以拆分成n-1组,从i=1开始,第i组的第一个d在下标为n-1-i的位置,每一组有i个字符串,第二个b在这一组的第一个字符串中下标为n,往下依次减小
n*(n-1)/2是所有的字符串个数
*/
int main()
{
speed_up;
int t;
cin>>t;
while(t--)
{
int n,k;
cin>>n>>k;
int sk=0,p=1,s=n*(n-1)/2;
for(int i=0;i<n;i++)
{
if(sk+p>=k)break;
sk+=p;
p++;
}
for(int i=0;i<n;i++)
{
if(i+1==n-p||i+1==n-(k-sk-1))cout<<"b";
else
{
cout<<"a";
}
}
cout<<endl;
}
#define ll long long
#define speed_up ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
const ll nl=1e18;
/*
通过找规律发现题中样例从下往上看,可以拆分成n-1组,从i=1开始,第i组的第一个d在下标为n-1-i的位置,每一组有i个字符串,第二个b在这一组的第一个字符串中下标为n,往下依次减小
n*(n-1)/2是所有的字符串个数
*/
int main()
{
speed_up;
int t;
cin>>t;
while(t--)
{
int n,k;
cin>>n>>k;
int sk=0,p=1,s=n*(n-1)/2;
for(int i=0;i<n;i++)
{
if(sk+p>=k)break;
sk+=p;
p++;
}
for(int i=0;i<n;i++)
{
if(i+1==n-p||i+1==n-(k-sk-1))cout<<"b";
else
{
cout<<"a";
}
}
cout<<endl;
}
return 0;
}
}
以上是关于6.4 VJ E - K-th Beautiful String的主要内容,如果未能解决你的问题,请参考以下文章