传送

回文数的判断有个神奇的公式:

g[i]==g[leng+-i]

其中leng为字符串长度,看每个g[i]是否都满足它,若满足,就是回文数

ps:洛谷的impossible有毒,必须得复制题干中的impossible

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char c[];
int t,k,lena,leng=,a[],b[],g[],n;
void pd();
void jf()
{
int x=;leng=;g[]=;
while(leng<=lena+)
{g[leng]=a[leng]+a[lena+-leng]+x;
x=g[leng]/n;
g[leng]%=n;
leng++;
}g[leng+]=x;t++;//cout<<t;
while(g[leng]==&&leng>)
{leng--;
}
pd();
}
void pd()
{
int o=;
for(int i=;i<=leng/;i++)
{if(g[i]==g[leng+-i])
{o++;if(o==leng/)
{cout<<"STEP="<<t;k++;}
}
else
{for(int i=;i<=leng;i++)
a[i]=g[i];
lena=leng;
}
}
}
int main()
{scanf("%d",&n);
scanf("%s",c);
lena=strlen(c);
for(int i=;i<=lena-;i++)
{if(c[i]>)a[lena-i]=+c[i]--;
else a[lena-i]=c[i]-;
}
while(t<=&&k==)
{jf();
}
if(k==)cout<<"Impossible!";
}

P1015回文数的更多相关文章

  1. 洛谷 P1015 回文数 Label:续命模拟QAQ

    题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数. 又如:对于10进制数 ...

  2. luogu P1015 回文数

    题目描述: 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数. 又如:对于10进制 ...

  3. Java实现 洛谷 P1015 回文数(N进制回文数)

    输入输出样例 输入样例#1: 10 87 输出样例#1: STEP=4 import java.util.Scanner; public class 回文数2 { public static void ...

  4. 洛谷 P1015 回文数

    #include<iostream> #include<cstdio> #include<cmath> #include<string> #includ ...

  5. P1015 回文数解题思路(非原创)

    测试 #include<bits/stdc++.h> using namespace std; int n,m,step; string nn; int len,nex; bool dfs ...

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

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

  7. P1015 [NOIP1999 普及组] 回文数

    点击查看题目 题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个十进制数 5656,将 5656 加 6565(即把 5656 从右向左读),得到 ...

  8. hdu1282回文数猜想

    Problem Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数.任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其 ...

  9. C语言 · 特殊回文数

    问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n . 输入格式 输入一行,包含一个正整数n. 输 ...

随机推荐

  1. angular的点击添加

    首先是在js里面我们可以用clone来点击添加一些东西比如列表或者其他的div之类的,但是在angular里面怎么实现点击添加呢? 类似这种: 这样就尴尬了,最少我这样的菜鸟是不知道怎么去写的,网上好 ...

  2. 各种浏览器兼容trim()的方法

    一.利用while方法解决 function trim(str) { while (str[0] == ' ') { str = str.slice(1); } while (str[str.leng ...

  3. Beta周第14次Scrum会议(11/23)【王者荣耀交流协会】

    一.小组信息 队名:王者荣耀交流协会 小组成员 队长:高远博 成员:王超,袁玥,任思佳,王磊,王玉玲,冉华 小组照片 二.开会信息 时间:2017/11/23 17:02~17:14,总计12min. ...

  4. 矩阵快速幂(以HDU1757为例)

    对于数据量大的求余运算,在有递推式的情况下,可以构造矩阵求解. A - A Simple Math Problem Lele now is thinking about a simple functi ...

  5. Linux中ctrl+z,ctrl+d和ctrl+c的区别

    Ctrl-c Kill foreground processCtrl-z Suspend foreground processCtrl-d Terminate input, or exit shell

  6. C++学习(三十一)(C语言部分)之 栈和队列(括号匹配示例)

    括号匹配测试代码笔记如下: #include<stdio.h> #include<string.h> #include <stdlib.h> #define SIZ ...

  7. dp 优化 F2. Pictures with Kittens (hard version)

    dp的优化可能是自己的弱项吧 F1中n*n*n的复杂度强行过去了 F2就无能为力了: 状态转移 dp[ i ] [ j ] 第一个i存的是位置 1-n;    j是放入数字的个数 然后F1就暴力过去了 ...

  8. 【maven】maven查看项目依赖并解决依赖冲突的问题

    一.问题 项目开发过程中,经常会遇到jar冲突,然后maven根据自己的规则进行冲突解决,导致项目在运行的过程中报错. 1.maven自动解决依赖冲突的规则是什么? 2.如何查看当前项目的maven的 ...

  9. react 简书开发笔记

    详见文章<React简书开发实战课程笔记>

  10. MySQL Execution Plan--数据排序操作

    MySQL数据排序 MySQL中对数据进行排序有三种方式:1.常规排序(双路排序)2.优化排序(单路排序)3.优先队列排序 优先队列排序使用对排序算法,利用堆数据结构在所有数据中取出前N条记录. 常规 ...