HDU 4731 Minimum Palindrome

2023-11-08

hdu 4731 Minimum palindrome
题意:前n个字母形成一个m长的字符串,要求如下:
1、最长回文串最小
2、字典序最小
思路:
1.n=1, aaaa……
2.n=2,打表找规律


1 a
2 ab
3 aab
4 aabb
5 aaaba
6 aaabab
7 aaababb
8 aaababbb
9 aaaababba
10 aaaababbaa
11 aaaababbaaa
12 aaaababbaaaa
13 aaaababbaabab
14 aaaababbaababb
15 aaaababbaababba
16 aaaababbaababbaa
17 aaaababbaababbaaa
18 aaaababbaababbaaaa
19 aaaababbaababbaabab
20 aaaababbaababbaababb


3.n>=3,abcabc…… 不存在回文且字典序最小
#include <cstring>
#include <cstdio>
#include <iostream>
using namespace std;

/*
int len;
string ans;

int cal( string str){
    int length = str.length();
    int tmp = 0;
    for(int i = 0; i < length; i ++ ){
        for(int j = length - 1; j >= i; j--){
            int tmp_i = i;
            int tmp_j = j;
            while(tmp_i <= tmp_j && str[tmp_i] == str[tmp_j]){
                tmp_i ++;
                tmp_j --;
            }
            if(tmp_i > tmp_j){
                int tt = j - i + 1;
                tmp = ( tt > tmp ) ? tt : tmp;
            }
        }
    }
    return tmp;
}                    

void getString( int level, int total, string str){
    if(level == total ){
        int tmp = cal(str);    
        if( (tmp < len) || (tmp == len && str < ans) ){
            len = tmp;
            ans = str;
        }
    }
    else{
        getString( level + 1, total, str + "a" );
        getString( level + 1, total, str + "b" );
    }
}
                
void dabiao(){
    for(int i = 1;i <= 20; i ++){
         len = i;
         ans = "";
         for(int j = 0; j < i; j++){
             ans += 'b';
         }
         getString(0,i,"");
         cout << i << " " << ans << endl; 
     }
 }
*/

int n,m,t;
             
int main(){
    //dabiao();
    scanf("%d",&t);
    for(int i = 1; i <= t; i++){
        scanf("%d%d",&m,&n);
        printf( "Case #%d: ", i );
        if( m == 1 ){
            for(int j = 0; j < n; j ++){
                printf( "a" );
            }
            printf("\n");
        }
        else if( m >= 3 ){
            for(int j = 0; j < n / 3; j ++){
                printf( "abc" );
            }
            if( n % 3 == 1 ){
                printf("a\n");
            }
            else if( n % 3 == 2 ){
                printf("ab\n");
            }
            else printf("\n");
        }
        else if( m == 2 ) {
            if(  n == 1 ) printf( "a\n" );
            else if( n == 2 ) printf( "ab\n");
            else if( n == 3 ) printf("aab\n");
            else if( n == 4 ) printf("aabb\n");
            else if( n == 5 ) printf("aaaba\n");
            else if( n == 6 ) printf("aaabab\n");
            else if( n == 7 ) printf("aaababb\n");
            else if( n == 8 ) printf("aaababbb\n");
            else{
                printf("aaaa");
                n -= 4;
                for( int j = 0; j < n / 6 ; j ++ ){
                    printf("babbaa");
                }
                if(n % 6 == 1 ) printf("a\n");
                else if( n % 6 == 2 ) printf("aa\n");
                else if( n % 6 == 3 ) printf("bab\n");
                else if( n % 6 == 4 ) printf("babb\n");
                else if( n % 6 == 5 ) printf("babba\n");
                else printf("\n");
            }      
        }
    }                             
    
    //system( "pause" );
    
    return 0;
}    


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HDU 4731 Minimum Palindrome 的相关文章

  • poj 1330 Nearest Common Ancestors

    Problem poj org problem id 1330 vjudge net contest 80844 problem C Meaning 求最近公共祖先 Note 真 LCA 模版题 那就备份一发 LCA 模版 链式前向星存图
  • HDU 1007 Quoit Design竟然要分治

    Quoit Design Time Limit 10000 5000 MS Java Others Memory Limit 65536 32768 K Java Others Total Submission s 34742 Accept
  • csu 1811 Tree Intersection 2016湖南省赛 I

    Problem acm csu edu cn csuoj problemset problem pid 1811 vjudge net contest 161962 problem I Reference blog csdn net qwb
  • 字符串、字符数组的截取函数:strncpy、strsub

    字符数组的截取函数 字符串截取函数
  • 第八十七题 UVa12166 Equilibrium Mobile

    A mobile is a type of kinetic sculpture constructed to take advantage of the principle of equilibrium It consists of a n
  • 数论——欧拉函数

    在数论中 对正整数n 欧拉函数是少于或等于n的数中与n互质的数的数目 此函数以其首名研究者欧拉命名 它又称为Euler s totient function 函数 欧拉商数等 例如 8 4 因为1 3 5 7均和8互质 百度百科词条 欧拉函
  • 【刷题】华为笔试面试机考 [HJ5] - 进制转换

    题目地址 点击跳转 题目描述 写出一个程序 接受一个十六进制的数 输出该数值的十进制表示 输入描述 输入一个十六进制的数值字符串 注意 一个用例会同时有多组输入数据 请参考帖子https www nowcoder com discuss 2
  • 【刷题】华为笔试面试机考 [HJ29] - 字符串加解密

    题目地址 点击跳转 题目描述 1 对输入的字符串进行加解密 并输出 2 加密方法为 当内容是英文字母时则用该英文字母的后一个字母替换 同时字母变换大小写 如字母a时则替换为B 字母Z时则替换为a 当内容是数字时则把该数字加1 如0替换1 1
  • hdu 1069 Monkey and Banana

    Problem acm hdu edu cn showproblem php pid 1069 Reference www cnblogs com kuangbin archive 2011 08 04 2127291 html 题意 给
  • HDU 1042 N!大数乘法

    N Time Limit 10000 5000ms Java Other Memory Limit 262144 262144K Java Other Total Submission s 69 Accepted Submission s
  • 杭电OJ_(2043)密码

    Problem Description 网上流传一句话 常在网上飘啊 哪能不挨刀啊 其实要想能安安心心地上网其实也不难 学点安全知识就可以 首先 我们就要设置一个安全的密码 那什么样的密码才叫安全的呢 一般来说一个比较安全的密码至少应该满足
  • 蓝桥杯 砝码称重 递归 解题报告

    5个砝码 用天平称重时 我们希望用尽可能少的砝码组合称出尽可能多的重量 如果只有5个砝码 重量分别是1 3 9 27 81 则它们可以组合称出1到121之间任意整数重量 砝码允许放在左右两个盘中 本题目要求编程实现 对用户给定的重量 给出砝
  • c编程:求出4×4矩阵中最大和最小元素值及其所在行下标和列下标,求出两条主对角线元素之和。

    求出4 4矩阵中最大和最小元素值及其所在行下标和列下标 求出两条主对角线元素之和 include
  • stl_set

    begin 返回指向第一个元素的 迭代器 clear 清除所有元素 size 集合中元素的数目 count 返回某个值元素的个数 empty 如果集合为空 返回true 真 end 返回指向最后一个元素之后的迭代器 不是最后一个元素器 in
  • hdu 4712 Hamming Distance

    Problem acm hdu edu cn showproblem php pid 4712 Reference 多向 bfs 思路 CSDN markdown 用 LaTeX Meaning 定义两个整数数 a 和 b 的汉明距离为 a
  • ACM--田忌赛马--贪心--HDOJ 1052--Tian Ji -- The Horse Racing

    HDOJ题目地址 传送门 Tian Ji The Horse Racing Time Limit 2000 1000 MS Java Others Memory Limit 65536 32768 K Java Others Total S
  • hduoj 2002

    计算球体积 Problem Description 根据输入的半径值 计算球的体积 Input 输入数据有多组 每组占一行 每行包括一个实数 表示球的半径 Output 输出对应的球的体积 对于每组输入数据 输出一行 计算结果保留三位小数
  • hdu 1080 Human Gene Functions

    Problem acm hdu edu cn showproblem php pid 1080 Meaning 给出一个二维表 similarity 表示对应核苷酸配对时的相似度值 横杠 表示用空格代替一个核苷酸 给出两个DNA序列 a 和
  • UVa 12504 Updating a Dictionary

    Problem uva onlinejudge org index php option com onlinejudge Itemid 8 page show problem problem 3948 题意 貌似是模拟 Source Cod
  • 天梯赛字符串替换题 “ 6翻了” Python 正则表达式替换

    输入格式 输入在一行中给出一句话 即一个非空字符串 由不超过 1000 个英文字母 数字和空格组成 以回车结束 输出格式 从左到右扫描输入的句子 如果句子中有超过 3 个连续的 6 则将这串连续的 6 替换成 9 但如果有超过 9 个连续的

随机推荐

  • Java web前端——JavaScript基础使用

    JavaScript概述 1 1 JavaScript简介 JavaScript LiveScript 一种解释性脚本语言 是一种动态类型 弱类型 基于原型继承的语言 内置支持类型 它的解释器被称为JavaScript引擎 为浏览器的一部分
  • 普通人如何抓住AI这个风口?

    无论是现在大火的AI 去年大火的元宇宙 虚拟炒房 还有之前的虚拟货币 疯狂的股市等等 普通人真正从中获得收益的 都是少数 风口其实本来就是少数人造富的神话 上一个10年的移动互联网风口 真正抓住的企业 也就那么几家 过去5年轰轰烈烈的新能源
  • Unity接入Huawei AR Engine

    说在前面 使用Unity进行AR开发的开发者基本都会遇到华为手机的坎 由于谷歌的制裁 ARCore并不能覆盖华为的新机型导致新的机型已经不能使用ARFoundation方案 使用第三方通用的ARsdk也并不能完美兼容常用的华为机型 毕竟官方
  • Linux软链接和硬链接

    1 Linux链接概念 Linux链接分两种 一种被称为硬链接 Hard Link 另一种被称为符号链接 Symbolic Link 默认情况下 ln命令产生硬链接 硬连接 硬连接指通过索引节点来进行连接 在Linux的文件系统中 保存在磁
  • Sublime Text 4(Build 4126)下载注册 及 修改运行配置为终端运行(C/C++、Java、Python)

    目录 一 Sublime Text 4 Build 4126 下载 二 Sublime Text 4 Build 4126 注册 三 修改配置 cmd运行程序 以 C 为例 1 MinGW编译器下载及安装 2 修改配置 四 参考以上步骤 对
  • 计算机分盘的时候c盘留多少,win10分区c盘留多大合适

    重装系统的时候一定会经历的一个过程就是磁盘分区 c盘也就是我们常说的系统盘 那么win10分区的时候c盘该留多少内存合适呢 下面就让小编来告诉你 win10分区c盘留多大合适 如果用户不打算将软件装在C盘 推荐C盘分区60到80GB 分区分
  • webpack基础教学,简单易懂(一)(什么是webpack以及webpack的基本使用)

    前端工程化webapck 什么是前端工程化 前端工程化指的是 在企业级的前端项目开发中 把前端开发所需的工具 技术 流程 经验等进行规范化 标准化 前端工程化的解决方案 早期的前端工程化解决方案 grunt https www gruntj
  • 【知识图谱】神经网络综述

    概述 近年来随着计算机硬件的发展 神经网络作为机器学习中不可获取的一部分在预测 分类 图像分割 识别等方向得到了极其广的应用 然而其网络模型多 数学基础涉及广 使得其门槛较高 好在目前有诸如tensorflow pytorch sklear
  • 【从零开始学习JAVA

    目录 前言 BigInterger BigInteger常见的方法 总结 前言 本篇我们将介绍BigInteger这个比较实用一点的API 这个API在我们实际写项目中都是很实用的API 因此大家应该对这个API有更加熟练的掌握 BigIn
  • Qt 播放视频文件报错:DirectShowPlayerService::doRender: Unresolved error code0x80040266 ()

    原因 缺少LAVFilters组件 解决方法 注意视频文件名不要有中文 下载该组件 http files 1f0 de lavf LAVFilters 0 65 exe 以管理员身份运行安装该组件 重新运行Qt打开视频的程序 发现正常了 不
  • Redis持久化、发布订阅、集群详解

    理论 前面我们说过 Redis相对于Memcache等其他的缓存产品 有一个比较明显的优势就是Redis不仅仅支持简单的key value类型的数据 同时还提供list set zset hash等数据结构的存储 这几种丰富的数据类型我们接
  • CSDN星城大巡礼,长沙“科技之星”年度企业评选正式开启

    2020年 长沙市委主要领导发出 软件产业再出发 的号召 颁布了软件三年行动计划 今年5月 CSDN 作为专业的 IT 社区 与长沙高新区签约 将全国总部落户长沙 这一战略决策 让CSDN与长沙的联结进一步加深 CSDN创始人蒋涛表示 要把
  • angular 基础入门总结

    工程文件创建和依赖下载 依赖npm工具 npm用来对node js的模块进行管理 主要2个用途 下载别人编写的第三方包到本地使用 上传自己的包供别人使用 package json 执行npm init 可以根据提示生成包描述文件 就是自己包
  • 054-机械臂编程

  • JavaScript 数组(数组的增删和数组排序)

    一 数组方法 1 数组操作 push 向数组末尾添加元素 返回新数组长度 添加单个元素 let arr JS Java C let newArrLength arr push PHP console log arr JS Java C PH
  • 基于量子粒子群算法(QPSO)优化LSTM的风电、负荷等时间序列预测算法(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 本文基于QPSO LSTM算法进行负荷 光
  • 功能测试和非功能测试有什么区别?

    转载 https dzone com articles whats the difference between functional and nonfun fromrel true 功能测试验证功能是否按照要求工作 而非功能测试则对更广泛
  • 通信加密与解密

    一 通信加密和解密技术概述 1 1 Bob和Alice的爱情故事 早些年间 恋人们之间的交往以书信沟通较为频繁 在那个年代 这种恋爱的人叫笔友 假设Bob和Alice正是处于这一时代 Bob和Alice恋爱了 他们两个好不容易走到一起 可是
  • 顺序表的简单操作代码(c++实现)

    include
  • HDU 4731 Minimum Palindrome

    hdu 4731 Minimum palindrome 题意 前n个字母形成一个m长的字符串 要求如下 1 最长回文串最小 2 字典序最小 思路 1 n 1 aaaa 2 n 2 打表找规律 1 a 2 ab 3 aab 4 aabb 5