U3348 A2-回文数

题目背景

方方方很喜欢回文数,于是就有了一道关于回文数的题目。

题目描述

求从小到大第n(1<=n<=10^18)个回文数。

注释:出题人认为回文数不包括0。

输入输出格式

输入格式:

一行一个正整数n。

输出格式:

第n个回文数。

输入输出样例

输入样例#1:

2333
输出样例#1:

1334331
输入样例#2:

12345678987654321
输出样例#2:

23456789876543222234567898765432

说明

对于50%的数据,n<=3000。

对于100%的数据,1<=n<=10^18。..

/*
找规律题
我们发现一个输出对应着输入数据首位-1,末位-1,然后进行对称变换
细节有三个:
1.如果前两项为10,需要把1减去,0变成9
2.如果末项为9,加1之后向前进位
3.对称变换需要考虑对称轴是最后一位数还是最后一位数后面的位置,这就需要提前预处理输出结果一共有几位数
*/
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long sum[],a[];
long long n;
int bin[],len,b[];
long long pow(int mi){
long long res=;
for(int i=;i<=mi;i++)res*=;
return res;
}
int main(){
freopen("hws.in","r",stdin);
freopen("hws.out","w",stdout);
for(int i=;i<=;i++){
int mi=((i+)/-);
a[i]=1LL**pow(mi);
sum[i]=sum[i-]+a[i];
}
cin>>n;
int pos=lower_bound(sum+,sum+,n)-sum;//pos就是数的位数
if(n==sum[pos-])pos--;
//cout<<pos<<endl;
while(n){
b[++len]=n%;
n/=;
}
for(int i=,j=len;i<=len;i++,j--)bin[i]=b[j];
bin[]--;bin[len]++;
if(bin[]==&&bin[]==)bin[]=;
int now=len;
while(bin[now]>=){
bin[now-]+=bin[now]/;
bin[now]%=;
now--;
}
int l=len,r=len+;
if(pos%==)l--;
while(l>=){
bin[r]=bin[l];
l--;r++;
}
l=,r--;
while(bin[l]==)l++;
while(bin[r]==)r--;
for(int i=l;i<=r;i++)printf("%d",bin[i]);
}

洛谷U3348 A2-回文数的更多相关文章

  1. 洛谷 P1609 最小回文数 题解

    这题其实并不难,重点在你对回文数的了解,根本就不需要高精度. 打个比方: 对于一个形如 ABCDEFGH 的整数 有且仅有一个比它大的最小回文数 有且仅有一个比它小的最大回文数 而整数 ABCDDCB ...

  2. 洛谷——P1609 最小回文数

    题目描述 回文数是从左向右读和从右向左读结果一样的数字串. 例如:121.44 和3是回文数,175和36不是. 对于一个给定的N,请你寻找一个回文数P,满足P>N. 满足这样条件的回文数很多, ...

  3. 洛谷—— P1609 最小回文数

    https://www.luogu.org/problemnew/show/1609 题目描述 回文数是从左向右读和从右向左读结果一样的数字串. 例如:121.44 和3是回文数,175和36不是. ...

  4. 洛谷 U3346 A1-偶回文数

    U3346 A1-偶回文数 题目背景 方方方很喜欢回文数,于是zzq就出了一道关于回文数的题目. 因为偶回文数比较简单,所以方方方就把它放在了第一题... 题目描述 我们定义一个长度为偶数的回文数叫做 ...

  5. 【洛谷p1217】回文质数

    回文质数[题目链接] 始终要记得凌云壮flag(真香) 说是个搜索,其实感觉更像是一个暴力: 这个题的难度并不是特别大,因为下面的提示太明显了qwq,(而且之前培训也讲过)首先是构造回文数,构造回文数 ...

  6. 题解 洛谷 P2010 【回文日期】

    By:Soroak 洛谷博客 知识点:模拟+暴力枚举 思路:题目中有提到闰年然后很多人就认为,闰年是需要判断的其实,含有2月29号的回文串,前四位是一个闰年那么我们就可以直接进行暴力枚举 一些小细节: ...

  7. 洛谷T89644 palindrome回文串

    洛谷 T89643 回文串(并查集) 洛谷:https://www.luogu.org/problem/T89643 题目描述 由于 Kiana 实在是太忙了,所以今天的题里面没有 Kiana. 有一 ...

  8. 【洛谷P3649】回文串

    题目大意:给定一个长度为 N 的字符串,定义一个变量为该字符串的回文子串长度乘以该字串出现的次数,求这个变量的最大值是多少. 题解:学会了回文自动机. 回文自动机是两棵树组成的森林结构,并通过 fai ...

  9. 洛谷P3649 [APIO2014]回文串(回文自动机)

    传送门 话说回文自动机我自己都还没搞懂呢…… 等到时候会了再来填坑 //minamoto #include<cstdio> #include<cstring> #define ...

  10. 【洛谷p1015】【一本通p1309】回文数(noip1999)

    (过了这个题灰常灰常开心) 好像前两道忘记了传送门: 回文数[传送门] 洛谷算法标签: 其实还有高精度 这个题困死在了十六进制,后来想了想,我们在c[i]中存入一个大于十的数之前的程序也可以实现回文( ...

随机推荐

  1. PR 批量导入

    REPORT  ZMM_UPLOAD_PR. DATA: BEGIN OF GT_DATA1 OCCURS 0,            BSART   TYPE STRING, "凭证类型  ...

  2. API的理解和使用——单线程架构

    核心知识点: 1.单线程机制:所有命令放在一个队列中 2.为什么Redis单线程这么快?内存中执行.非IO阻塞.避免线程切换和竞态产生的消耗. 3.单线程的问题?一个命令不能执行太长时间,不然会阻塞其 ...

  3. Linux bash shell环境变量以及语法规范

    摘自: http://blog.csdn.net/abc_ii/article/details/8762739

  4. CSS3咖啡制作全过程动画

    CSS3咖啡制作全过程动画是一款利用纯CSS3实现的咖啡制作全过程动画特效,从把咖啡豆导入杯子,到把咖啡煮好,整个动画还比较流畅. 源码:http://www.huiyi8.com/sc/8788.h ...

  5. 检测 iOS 系统网络权限被关闭

    背景 一直都有用户反馈无法正常联网的问题,经过定位,发现很大一部分用户是因为网络权限被系统关闭,经过资料搜集和排除发现根本原因是: 第一次打开 app 不能访问网络,无任何提示 第一次打开 app 直 ...

  6. html5--2.10综合实例2-移动端页面练习

    html5--2.10综合实例2-移动端页面练习 学习要点 通过一个简单的移动手机页面,复习学过的内容 手机网页的测试 手机布局的屏幕设定 手机网页的测试方法 直接在手机上测试,比较麻烦,效果好 电脑 ...

  7. Linux_异常_02_WinSCP上传文件时显示Permission denied

    异常现象如下: 二.解决方案 1.设置对应目录权限全开,就可以上传文件到这个目录了 sudo chmod 777 /devloper

  8. TF-IFD算法及python实现关键字提取

    TF-IDF算法: TF:词频(Term Frequency),即在分词后,某一个词在文档中出现的频率. IDF:逆文档频率(Inverse Document Frequency).在词频的基础上给每 ...

  9. android自定义控件(六) 刷新

    三种得到LinearInflater的方法 a. LayoutInflater inflater = getLayoutInflater(); b. LayoutInflater localinfla ...

  10. zero to one (3)

    工具使用 AWVS Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的Web网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞. 功能及特 ...