这题写了半个小时还拉上了大佬

再写构造我是狗

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的更多相关文章

  1. 【题解】Palindrome pairs [Codeforces159D]

    [题解]Palindrome pairs [Codeforces159D] 传送门:\(Palindrome\) \(pairs\) \([CF159D]\) [题目描述] 给定一个长度为 \(N\) ...

  2. [LeetCode 题解]:Palindrome Number

    前言   [LeetCode 题解]系列传送门:  http://www.cnblogs.com/double-win/category/573499.html   1.题目描述 Determine ...

  3. leetcode题解 9. Palindrome Number

    9. Palindrome Number 题目: Determine whether an integer is a palindrome. Do this without extra space. ...

  4. 《LeetBook》leetcode题解(9):Palindrome Number[E]——回文数字

    我现在在做一个叫<leetbook>的开源书项目,把解题思路都同步更新到github上了,需要的同学可以去看看 地址:https://github.com/hk029/leetcode 这 ...

  5. [LeetCode 题解]: Valid Palindrome

    Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori ...

  6. LeetCode(125)题解--Valid Palindrome

    https://leetcode.com/problems/valid-palindrome/ 题目: Given a string, determine if it is a palindrome, ...

  7. cf B. Simple Molecules

    http://codeforces.com/contest/344/problem/B #include <cstdio> #include <cstring> using n ...

  8. cf A Simple Task---线段树

    Examples Input 10 5abacdabcda7 10 05 8 11 4 03 6 07 10 1 Output cbcaaaabdd Input 10 1agjucbvdfk1 10 ...

  9. 【AtCoder】ARC095 C-F题解

    我居然每道题都能想出来 虽然不是每道题都能写对,debug了很久/facepalm C - Many Medians 排序后前N/2个数的中位数时排序后第N/2 + 1的数 其余的中位数都是排序后第N ...

  10. 【CF 675D Tree Construction】BST

    题目链接:http://codeforces.com/problemset/problem/675/D 题意:给一个由n个互异整数组成的序列a[],模拟BST的插入过程,依次输出每插入一个元素a[i] ...

随机推荐

  1. MySQL保姆级安装教程(附资源包+5分钟极速配置+环境变量调试技巧)

    mysql简介 MySQL 是一种开源关系型数据库管理系统(RDBMS),由瑞典 MySQL AB 公司于 1995 年开发,现由 Oracle 公司维护.它采用客户端-服务器架构,支持多线程处理和高 ...

  2. GDB调试Core文件出现问号?的原因

    函数的调用其实是函数的入栈出栈操作,但当程序栈因程序的错误导致破坏了栈,这时候就会导致gdb解析core文件时解析不出来的情况,即是问号(?) 那还能做点什么呢? 可以通过打印\(rbp\)和\(rs ...

  3. django-channels如何向组内特定成员推送信息的解决方案

    测试版本: python 3.8 djnago 3.2 channels 3.0 需求 向channels的小组内某(些)个特定成员推送信息,而不是向组内所有人员群发 实现原理 websocket 三 ...

  4. ChatGPT 相关资料

    ChatGPT是基于GPT-3.5的语言模型且并未开源.对ChatGPT的资料搜索主要来自于兄弟模型InstrucGPT的相关资料. 相比较于InstrucGPT,ChatGPT采用多轮对话形式,符合 ...

  5. PHP代码学习

    在php传参过程中,如果服务器运行的Linux环境,可以加入命令的执行,比如参数名是a,命令可以是:a=ls,通过用:,&&,|| 来分割,还可以同时执行多个命令.在Windows环境 ...

  6. Java CountDownLatch的使用方法

    摘要:介绍Java中CountDownLatch的使用方法,重点包括计数器的值.countDown和await.计数器的值表示任务线程的个数,每次countDown都会使计数减一,减到0的时候调用aw ...

  7. 基于StringUtils实现List和String字符串互转

    将以逗号分割的字符串转换成List类型: String ids= "1,2,32,59,96"; List<Long> idsList = Arrays.asList( ...

  8. 附录:LInux编辑器

    附录2:编辑器 1.vim 参考:菜鸟教程 1.1.安装 sudo apt install -y vim 1.2.常用指令 基本上 vi/vim 共分为三种模式,命令模式(Command Mode). ...

  9. MyBatis时区问题

    (事不过三!!!!第二次犯时区的错误了) 关于根据MyBatis官方文档 配置全局xml文件时遇到的问题: org.apache.ibatis.exceptions.PersistenceExcept ...

  10. vmware15.5的解锁mac系统插件

    停止虚拟机服务 执行破解 进入插件MK-Unlocker-VM15.5目录内,右键以管理员权限运行win-install.cmd 查看效果 等待如上的脚本执行完成后,再打开vm,创建虚拟机,看看就有了 ...