[CF题解] Simple Palindrome
这题写了半个小时还拉上了大佬
再写构造我是狗
1.题意简述
用\(a,e,i,o,u\)构造一个串 使串中的回文子序列最少
2.读题
这道题其实并不难,难就难在什么是"回文子序列"。看到题目的第一眼,我相信你想到的肯定是:
哦哦,这题简单,不就是让他回文部分最小吗,那我直接输出\(aeiouaeiou\)循环不就行了吗。
结果得到的结果:

你定睛一看,回文子序列()
3.解法
所以,这样怎么解呢
我们以\(n=7\)为例,以我们第一次的做法,得到的是\(aeiouae\) ,其中的回文子序列:

我们可以看到,因为一直重复,所以非常多,当数量增加时会更加明显
一种显而易见的做法,同样字母叠加到一起,构造串
仍然以\(n=7\)为例 ,以当前做法,得到的是\(aaeeiou\),其中的回文子序列

2<3,因此得证
还有一种特殊情况,那就是\(n<=5\),那就直接输出就行了
4.std
#include <bits/stdc++.h>
using namespace std;
string str(int num, string t)
{
string ret;
while (num != 0)
{
num--;
ret += t;
}
return ret;
}
void solve()
{
int n;
cin >> n;
int k = n / 5;
string ans = "";
ans += str(k, "a");
if (n % 5 != 0)
ans += 'a', n--;
ans += str(k, "e");
if (n % 5 != 0)
ans += 'e', n--;
ans += str(k, "i");
if (n % 5 != 0)
ans += 'i', n--;
ans += str(k, "o");
if (n % 5 != 0)
ans += 'o', n--;
ans += str(k, "u");
if (n % 5 != 0)
ans += 'u', n--;
cout << ans << endl;
}
int main()
{
int t;
cin >> t;
while (t--)
{
solve();
}
return 0;
}
[CF题解] Simple Palindrome的更多相关文章
- 【题解】Palindrome pairs [Codeforces159D]
[题解]Palindrome pairs [Codeforces159D] 传送门:\(Palindrome\) \(pairs\) \([CF159D]\) [题目描述] 给定一个长度为 \(N\) ...
- [LeetCode 题解]:Palindrome Number
前言 [LeetCode 题解]系列传送门: http://www.cnblogs.com/double-win/category/573499.html 1.题目描述 Determine ...
- leetcode题解 9. Palindrome Number
9. Palindrome Number 题目: Determine whether an integer is a palindrome. Do this without extra space. ...
- 《LeetBook》leetcode题解(9):Palindrome Number[E]——回文数字
我现在在做一个叫<leetbook>的开源书项目,把解题思路都同步更新到github上了,需要的同学可以去看看 地址:https://github.com/hk029/leetcode 这 ...
- [LeetCode 题解]: Valid Palindrome
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori ...
- LeetCode(125)题解--Valid Palindrome
https://leetcode.com/problems/valid-palindrome/ 题目: Given a string, determine if it is a palindrome, ...
- cf B. Simple Molecules
http://codeforces.com/contest/344/problem/B #include <cstdio> #include <cstring> using n ...
- cf A Simple Task---线段树
Examples Input 10 5abacdabcda7 10 05 8 11 4 03 6 07 10 1 Output cbcaaaabdd Input 10 1agjucbvdfk1 10 ...
- 【AtCoder】ARC095 C-F题解
我居然每道题都能想出来 虽然不是每道题都能写对,debug了很久/facepalm C - Many Medians 排序后前N/2个数的中位数时排序后第N/2 + 1的数 其余的中位数都是排序后第N ...
- 【CF 675D Tree Construction】BST
题目链接:http://codeforces.com/problemset/problem/675/D 题意:给一个由n个互异整数组成的序列a[],模拟BST的插入过程,依次输出每插入一个元素a[i] ...
随机推荐
- MySQL保姆级安装教程(附资源包+5分钟极速配置+环境变量调试技巧)
mysql简介 MySQL 是一种开源关系型数据库管理系统(RDBMS),由瑞典 MySQL AB 公司于 1995 年开发,现由 Oracle 公司维护.它采用客户端-服务器架构,支持多线程处理和高 ...
- GDB调试Core文件出现问号?的原因
函数的调用其实是函数的入栈出栈操作,但当程序栈因程序的错误导致破坏了栈,这时候就会导致gdb解析core文件时解析不出来的情况,即是问号(?) 那还能做点什么呢? 可以通过打印\(rbp\)和\(rs ...
- django-channels如何向组内特定成员推送信息的解决方案
测试版本: python 3.8 djnago 3.2 channels 3.0 需求 向channels的小组内某(些)个特定成员推送信息,而不是向组内所有人员群发 实现原理 websocket 三 ...
- ChatGPT 相关资料
ChatGPT是基于GPT-3.5的语言模型且并未开源.对ChatGPT的资料搜索主要来自于兄弟模型InstrucGPT的相关资料. 相比较于InstrucGPT,ChatGPT采用多轮对话形式,符合 ...
- PHP代码学习
在php传参过程中,如果服务器运行的Linux环境,可以加入命令的执行,比如参数名是a,命令可以是:a=ls,通过用:,&&,|| 来分割,还可以同时执行多个命令.在Windows环境 ...
- Java CountDownLatch的使用方法
摘要:介绍Java中CountDownLatch的使用方法,重点包括计数器的值.countDown和await.计数器的值表示任务线程的个数,每次countDown都会使计数减一,减到0的时候调用aw ...
- 基于StringUtils实现List和String字符串互转
将以逗号分割的字符串转换成List类型: String ids= "1,2,32,59,96"; List<Long> idsList = Arrays.asList( ...
- 附录:LInux编辑器
附录2:编辑器 1.vim 参考:菜鸟教程 1.1.安装 sudo apt install -y vim 1.2.常用指令 基本上 vi/vim 共分为三种模式,命令模式(Command Mode). ...
- MyBatis时区问题
(事不过三!!!!第二次犯时区的错误了) 关于根据MyBatis官方文档 配置全局xml文件时遇到的问题: org.apache.ibatis.exceptions.PersistenceExcept ...
- vmware15.5的解锁mac系统插件
停止虚拟机服务 执行破解 进入插件MK-Unlocker-VM15.5目录内,右键以管理员权限运行win-install.cmd 查看效果 等待如上的脚本执行完成后,再打开vm,创建虚拟机,看看就有了 ...