第一个!!!这题必须降等级!
2024-04-28 22:54:09
发布于:浙江
32阅读
0回复
0点赞
CF1461A.String Generation原题传送门
对我来说此题最难的地方在于......英语!
有道翻译了半天才搞懂,突然发现某谷有洛谷此题链接
题意(洛谷):
生成一段长度为 n 的字符串,该字符串必须满足以下要求:
只包含字符 "a","b" 和 "c";此字符串的回文子串最大长度不超过 k。
子串的定义:如果字符串 A 可以通过从开头删除多个(可能为零或全部)字符,以及从末尾删除多个(可能为零或全部)字符成为字符串 B,我们就称
B 为 A 的子串。
回文的定义:如果字符串从左到右和从右到左读相同,我们就称这个字符串是回文的。
请你求出任意一种符合条件的字符串。
保证数据一定有解。
输入格式
第一行,一个整数t(1≤t≤10),表示数据组数;
对于每组数据,一行两个正整数 n 和 k (1≤k≤n≤1000),表示所需的字符串长度和回文子串的最大长度。
输出格式
对于每组数据,输出任意一种符合条件的字符串,如果有多个正确答案,您可以输出其中任何一个答案
题意分析
题目一堆废话,概括一下建一个长为n的字符串,只有a,b,c组成,回文子串长不超k,已知k最小1,那么abcabcabc..... 懂得都懂,直接偷懒,一个abc串不断循环就行了
代码实现
#include<bits/stdc++.h>//标准万能头
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);//遗留的cin,cout解绑加速
int T;
cin>>T;
char a[3]={'a','b','c'};//abc串
while(T--){
int n,k;
cin>>n>>k;
for(int i=1;i<=n;i++){//i从0或1开始都行,就是长度注意
cout<<a[i%3];
}
cout<<endl;
}
return 0;//完美结束!没错,就这
}
其实应该还有别的办法,但我懒得做(其实是不会
欢迎大家提出意见!
题外话:
三体ACGO分部等你!快来!!!
这里空空如也
有帮助,赞一个