P1609 最小回文数 题解

2023-11-19

本题位数较大,所以只能使用字符串读入

因为是回文数,所以我们只考虑前半部分的情况就能确定一个回文数。

如一个型为 x y z ‾ \overline{xyz} xyz 的数,我们考虑 x y x ‾ \overline{xyx} xyx(这个数是回文数)是否大于 x y z ‾ \overline{xyz} xyz,如果大于,那么就可以输出 x y x ‾ \overline{xyx} xyx,否则就把 y y y 自增 1 1 1,并且考虑进位(详情见高精度),直到我们求出的数大于原数为止。

这里要特判一下,如果输入是 9 9 9,我们就直接输出 11 11 11

这题和 SP5 相似,双倍经验等着你!

不多说了,上代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a[1000010],p[1000010],l;
char s[1000010];
bool palin(int x[],int y[])
{
	for(int i=0;i<l;i++) if(x[i]!=y[i]) return x[i]<y[i];
	return false;
}
int main()
{
	scanf("%s",s),l=strlen(s);
	if(strcmp(s,"9")==0)
	{
		cout<<11<<endl;
		return 0;
	}
	for(int i=0;i<l;i++) a[i]=s[i]-'0';
	for(int i=0;i<=(l-1)/2;i++) p[i]=p[l-i-1]=a[i];
	if(!palin(a,p))
	{
		a[(l-1)/2]++;
		for(int i=(l-1)/2;i;i--) a[i-1]+=a[i]/10,a[i]%=10;
		for(int i=0;i<=(l-1)/2;i++) p[i]=p[l-i-1]=a[i];
	}
	for(int i=0;i<l-1;i++) cout<<p[i];
	if(p[l-1]==10) cout<<1<<endl;
	else cout<<p[l-1]<<endl;
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

P1609 最小回文数 题解 的相关文章

随机推荐

  • 玩转树莓派 一、为你的树莓派烧录系统镜像

    准备工作 1 一台烧录镜像用的电脑 Windows Mac Linux 2 树莓派 3 显示器 高清连接线 根据不同型号需要不同的接口 4 键盘鼠标 5 Micro SD 读卡器 Micro SD 卡 16 128G 6 网线 不使用wif
  • 利用github.io(githubPages)免费托管个人静态网站/个人博客

    我们的个人博客或者静态网站可以托管到github就能通过github域名访问 git仓库配置 我采用的是自己编写一个html文件 githubPages搭建 首先需要在GitHub上创建Github Pages服务 具体步骤如下图 点击之后
  • 11 个Python教程来炫耀你的高级技能

    如果你可以以 Python 式的方式使用 Python 那么 Python 是一种优雅的语言 但不管你有多资深 真正用 Python 写代码都需要一些时间 本文将向你分享 11 个 Pythonic 技巧 让你的 Python 技能提升到一
  • hexo d时提示错误ssh: Could not resolve hostname e. coding. net: Name or service not known解决方案

    步骤1 命令符ping github com 得出的IP github com添加到 etc hosts hosts文件在C Windows System32 drivers etc目录 如拒绝修改 可右键添加用户完全控制权限
  • vue 项目全局修改element-ui的样式

    引入了element ui 但是和我们自己的样式颜色有很大的不同 官网自定义主题 点击查看 修改例子 在src文件下创建 element var scss 代码如下 color primary yellow 修改按钮primary的颜色 改
  • windows MongoDB安装和配置

    一 MongoDB安装和配置 1 进入官网下载你所需要的安装版本 点击直通官网 Step1 进入官网后 将看到如下界面 点击上方导航栏Products 找到Community Server Step2 选择自己需要的版本 系统和压缩方式 2
  • centos启动停留在started GNOME display manager

    Centos启动卡死进不去界面 停留在started GNOME display manager 在安装Centos7 9系统成功后 需要安装显卡驱动 显卡驱动有一个驱动程序自带这图形化界面 安装该驱动程序后 系统一直处于started G
  • Python连接MySQL数据库

    一 准备模块 python连接SQL数据库首先需要用到 pymysql 模块 这里使用pip install指令来安装步骤如下 1 在安装的python的路径下找到Scripts文件夹并打开 在路径上面写成 cmd 后回车 2 进入这个界面
  • springboot配置自定义数据源(Druid德鲁伊)的步骤。

    今天和大家分享下在Springboot中配置自定义数据源Druid的两种方法及步骤 方法一 1 在pom xml配置依赖 注释里面的内容 2 配置自己的数据源设置 我是在yaml文件中配置的 顺便提醒一下 在配置yaml文件的时候缩进问题一
  • 【引用】四元组与旋转矩阵

    引用 四元组与旋转矩阵 2011 09 22 17 13 39 分类 DirectX资料 举报 字号 订阅 下载LOFTER客户端 本文转载自ericyang1231 四元组与旋转矩阵 在3D程序中 通常用quaternion来计算3D物体
  • iOS开发之状态栏statusBar颜色变化

    在网上搜索了很久 我也试了很多种情况 下面我为每种情况排布一下优先级 刚开始的时候我没有写播放器 使用的是腾讯的SDK 发现我之前设置的状态栏变化不在发生变化啦 所以在这里做一个小结 Xcode默认的颜色是黑色 记录优化代码的点滴 第一种
  • C++---背包模型---装箱问题(每日一道算法2023.3.9)

    注意事项 本题是 动态规划 01背包 的扩展题 dp和优化思路不多赘述 题目 有一个箱子容量为 V 同时有 n 个物品 每个物品有一个体积 正整数 要求 n 个物品中 任取若干个装入箱内 使箱子的剩余空间为最小 输入格式 第一行是一个整数
  • int $0x80系统调用的idea

    1 基础知识 用户态和内核态 一般现代CPU都有几种不同的指令执行级别 Linux总共划分为4个指令执行级别 内核运行在0级别上 1 2级别默认不运行 用户程序运行在3级别上 在内核指令执行级别上 代码可以执行特权指令 访问任意的物理地址
  • 微信小程序组件 - 部门机构人员岗位树组件

  • 国产版Airtag防丢器

    Airtag是什么 AirTag是苹果公司设计的一款定位神奇 它通过一款纽扣电池进行供电 即可实现长达1 2年的关键物品的定位 查找的功能 按照苹果公司自己的话说 您 丢三落四这门绝技 要 失 传 了 AirTag 可帮你轻松追踪并查找各种
  • 华为手机怎样才算激活了_华为P30 Pro手机壳不要闹,简约个性才是王道

    提起手机壳相信大家都不会陌生 在曾经 很多人对于手机壳的印象还只是停留于保护阶段 但是伴随着人们生活水屏的不断提升 手机壳设计师们为了迎合年轻消费者的需求 在外观上做出了升级 风格款式多样 材质分门别类 如今市场上的手机壳可谓是琳琅满目 不
  • 【大数据】Hive: 获取字段数据类型

    2018 12 01 文章目录 前言 方法 前言 某项目涉及将Hive中的textFile表转换成parquet表 由于parquet表不支持date类型 需要判断字段是否是date 并cast成timestamp 方法 采用DESCRIB
  • redis缓存机构-持久化详解(二)

    redis缓存机构 持久化详解 1 redis对于生产环境的灾难恢复的意义 在于故障恢复 2 redis的持久化 RDB AOF 区别 特点是什么 适合什么场景 1 RDB持久化机制 对redis中的数据执行周期性的持久化 数据快照 RDB
  • luaj使用 方法签名规则 Cocos2dxLuaJavaBridge

    function AndroidHandler getParamJson local args nil local ok ret luaj callStaticMethod className getParamJson args Ljava
  • P1609 最小回文数 题解

    本题位数较大 所以只能使用字符串读入 因为是回文数 所以我们只考虑前半部分的情况就能确定一个回文数 如一个型为 x y z overline xyz xy