【洛谷p1015】【一本通p1309】回文数(noip1999)
(过了这个题灰常灰常开心)
好像前两道忘记了传送门:
洛谷算法标签:
其实还有高精度
这个题困死在了十六进制,后来想了想,我们在c[i]中存入一个大于十的数之前的程序也可以实现回文(11=11嘛),所以加了个n=16时的特判:
利用强制类型转化把ABCDEF转化成10,11,12,13,14,15接着进行程序。
int tp()
{
for(int i=;i<=len-;i++)
{
if(m[i]>=){int e=m[i]-;a[len-i]=e;}
else a[len-i]=m[i]-;
}
for(int i=;i<=len-;i++)
{
if(m[i]>=){int e=m[i]-;a[len-i]=e;}
else b[i+]=m[i]-;
}
if(hw1(len))
cout<<<<endl;
else sum(len);
}
好的附ac代码:
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
using namespace std;
char m[];
bool hw1(int);
int n,len;
int a[],b[],c[];
int g=;
bool hw(int f)
{
int i=,j=f;
bool flag=;
while(i<=j)
{
if(c[i]!=c[j]){flag=;break;}
else{i++;j--;}
}
return flag;
}
int sum(int len)
{
int j=;
int x=;
while(len>=j)
{
c[j]=a[j]+b[j]+x;
x=c[j]/n;
c[j]%=n;
j++;
}
c[j]=x;
while(c[j]==&&j>)j--;
for(int i=;i<=j;i++)
{
a[i]=c[i];
b[i]=c[j-i+];
}
g++;
if(g>=)cout<<"Impossible"<<endl;
else
{
if(hw(j))cout<<g<<endl;
if(!hw(j))sum(j);
}
}
int tp()
{
for(int i=;i<=len-;i++)
{
if(m[i]>=){int e=m[i]-;a[len-i]=e;}
else a[len-i]=m[i]-;
}
for(int i=;i<=len-;i++)
{
if(m[i]>=){int e=m[i]-;a[len-i]=e;}
else b[i+]=m[i]-;
}
if(hw1(len))
cout<<<<endl;
else sum(len);
}
int main()
{
cin>>n;
scanf("%s",m);
len=strlen(m);
if(n==)tp();
else{
for(int i=;i<=len-;i++)a[len-i]=m[i]-;
for(int i=;i<=len-;i++)b[i+]=m[i]-;
if(hw1(len))
cout<<<<endl;
else sum(len);
} }
bool hw1(int f)
{
int i=,j=f;
bool flag=;
while(i<=j)
{
if(a[i]!=a[j])
{
flag=;
break;
}
else{i++;j--;}
}
return flag;
}
码风清奇
end-
【洛谷p1015】【一本通p1309】回文数(noip1999)的更多相关文章
- [洛谷P2425]小红帽的回文数
原题传送门 这道题需要枚举.如果直接枚举会$TLE$. 考虑进制的转换:对于$> x$的进制下,一定是回文数 回文长度$2$位:设每一位为$i$,进制为$x$,则该数为$i*x+i$.反之,如果 ...
- 【洛谷P1207】双重回文数 【USACO1.2】
P1207 [USACO1.2]双重回文数 Dual Palindromes 题目描述 如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做"回文数".例如,12321就是一 ...
- 洛谷P1206 [USACO1.2]回文平方数 Palindromic Squares
P1206 [USACO1.2]回文平方数 Palindromic Squares 271通过 501提交 题目提供者该用户不存在 标签USACO 难度普及- 提交 讨论 题解 最新讨论 暂时没有 ...
- 洛谷 P1206 [USACO1.2]回文平方数 Palindromic Squares
P1206 [USACO1.2]回文平方数 Palindromic Squares 题目描述 回文数是指从左向右念和从右向左念都一样的数.如12321就是一个典型的回文数. 给定一个进制B(2< ...
- 洛谷 P1217 [USACO1.5]回文质数 Prime Palindromes【取回文数/数论/字符串】
题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围[a,b](5 <= a < b <= 100,000 ...
- 洛谷 P1217 [USACO1.5]回文质数 Prime Palindrome
嗯... 这道题对于蒟蒻的我来说实在是TQL... 先看一下题:(题目链接:https://www.luogu.org/problemnew/show/P1217) 然后说一下我的做题过程吧: 一看到 ...
- 洛谷 P1217 [USACO1.5]回文质数 Prime Palindromes
P1217 [USACO1.5]回文质数 Prime Palindromes 题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找 ...
- luogu10125回文数[noip1999 Day1 T1]
题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个10进制数56,将56加65(即把56从右向左读),得到121是一个回文数. 又如:对于10进制数 ...
- 1309:【例1.6】回文数(Noip1999)
传送门:http://ybt.ssoier.cn:8088/problem_show.php?pid=1309 [题目描述] 若一个数(首位不为零)从左向右读与从右向左读都是一样,我们就将其称之为回文 ...
- 洛谷P4324 扭动的回文串 [JSOI2016] manacher+哈希
正解:manacher+哈希 解题报告: 传送门 要不要先解释下题意,,,我开始看了半天来着QAQ 大概就,要求一个最长的回文串 这个回文串有两种构成可能 一种是单从一个串中拿出来的连续一段 另一种是 ...
随机推荐
- 彻底了解 suid, sgid ,sticky权限
sticky: 粘性的, 如 : sticky tape: 粘胶带 /tmp, /var/tmp: 位 sticky: 表示: 第一, 任何用户都可以在该目录下创建文件(编辑自己的文件),第二, 但是 ...
- sql server查看用户权限
System.ServiceModel.FaultException: Server error. Detail: The EXECUTE permission was denied on the o ...
- 【论文笔记】Learning Convolutional Neural Networks for Graphs
Learning Convolutional Neural Networks for Graphs 2018-01-17 21:41:57 [Introduction] 这篇 paper 是发表在 ...
- [蓝桥] 基础练习 十进制转十六进制 (java)
问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式.它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15.十六进制的计数方法是满1 ...
- UVA 11019 Matrix Matcher(哈希)
题意 给定一个 \(n\times m\) 的矩阵,在给定一个 \(x\times y\) 的小矩阵,求小矩阵在大矩阵中出现的次数. \(1 \leq n,m \leq 1000\) \(1\leq ...
- Docker:Swarms
Prerequisites Install Docker version 1.13 or higher. Get Docker Compose as described in Part 3 prere ...
- 一个 xxx is not defined 引发的爬坑之路
出处 https://www.cnblogs.com/daysme/ - 2018-01-06 昨晚找了一个代码解决了我对配置的需求.高兴的拿到手机上测试却发现点击没有效果,电脑上是可以的呀,电脑上的 ...
- 【NOIP 2016】Day1 T2 天天爱跑步
Problem Description 小 C 同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是一个养成类游戏,需要玩家每天按时上线,完成打卡任 ...
- activity 的跳转
在app文件夹上右键新建空的activity ,名称为DisplayMessageActivity, 修改layout文件夹下activity_display_message.xml <?xml ...
- PL/SQL Developer安装配置
选择tool下的perferences 修改下面标记的内容即可