P1207 [USACO1.2]双重回文数 Dual Palindromes

  • 291通过
  • 462提交
  • 题目提供者该用户不存在
  • 标签USACO
  • 难度普及-

提交  讨论  题解

最新讨论

  • 暂时没有讨论

题目描述

如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做“回文数”。例如,12321就是一个回文数,而77778就不是。当然,回文数的首和尾都应是非零的,因此0220就不是回文数。

事实上,有一些数(如21),在十进制时不是回文数,但在其它进制(如二进制时为10101)时就是回文数。

编一个程序,从文件读入两个十进制数N (1 <= N <= 15)S (0 < S < 10000)然后找出前N个满足大于S且在两种或两种以上进制(二进制至十进制)上是回文数的十进制数,输出到文件上。

本问题的解决方案不需要使用大于32位的整型

输入输出格式

输入格式:

只有一行,用空格隔开的两个数N和S。

输出格式:

N行, 每行一个满足上述要求的数,并按从小到大的顺序输出。

输入输出样例

输入样例#1

3 25

输出样例#1

26

27

28

说明

题目翻译来自NOCOW。

USACO Training Section 1.2

分析:题目没有给出明确的上限,似乎有点不好做,发现N比较小,并且只需要在2进制到10进制中寻找,那么可以直接从s+1枚举,直到有N个为止,对于本题最好不要使用定长数组,我作死的用了一下AC了,但是不建议这么做,至于进制转换和回文数的判断,可以参考我的上一篇博文:传送门

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; int n, s,num; bool check(int x, int jinzhi)
{
int a[],i = ;
while (x)
{
a[++i] = x % jinzhi;
x /= jinzhi;
}
int t = i;
while (i && a[i] == a[t - i + ])
i--;
if (i == )
return true;
return false;
} int main()
{
scanf("%d%d", &n, &s);
for (int i = s + ; num < n; i++)
{
int temp = ;
for (int j = ; j <= ; j++)
{
if (check(i, j))
temp++;
if (temp == )
break;
}
if (temp == )
{
printf("%d\n", i);
num++;
}
} return ;
}

洛谷P1207 [USACO1.2]双重回文数 Dual Palindromes的更多相关文章

  1. 洛谷 P1207 [USACO1.2]双重回文数 Dual Palindromes

    P1207 [USACO1.2]双重回文数 Dual Palindromes 题目描述 如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做“回文数”.例如,12321就是一个回文数,而7777 ...

  2. USACO Training Section 1.2 双重回文数 Dual Palindrom

    题目描述 如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做"回文数".例如,12321就是一个回文数,而77778就不是.当然,回文数的首和尾都应是非零的,因此0220就 ...

  3. 【洛谷P1207】双重回文数 【USACO1.2】

    P1207 [USACO1.2]双重回文数 Dual Palindromes 题目描述 如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做"回文数".例如,12321就是一 ...

  4. COGS 678. 双重回文数

    ★   输入文件:dualpal.in   输出文件:dualpal.out   简单对比时间限制:1 s   内存限制:128 MB Dual Palindromes 双重回文数 描述 [USACO ...

  5. luogu1207双重回文数[usaco1.2]Dual Palindromes

    题目描述 如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做“回文数”.例如,12321就是一个回文数,而77778就不是.当然,回文数的首和尾都应是非零的,因此0220就不是回文数. 事实上 ...

  6. 【USACO 1.2.5】双重回文数

    [题目描述] 如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做“回文数”.例如,12321就是一个回文数,而77778就不是.当然,回文数的首和尾都应是非零的,因此0220就不是回文数. 事 ...

  7. [Swift]LeetCode906. 超级回文数 | Super Palindromes

    Let's say a positive integer is a superpalindrome if it is a palindrome, and it is also the square o ...

  8. 2018.06.29 洛谷P2890 [USACO07OPEN]便宜的回文(简单dp)

    P2890 [USACO07OPEN]便宜的回文Cheapest Palindrome 时空限制 1000ms / 128MB 题目描述 Keeping track of all the cows c ...

  9. 洛谷oj U3936(分成回文串) 邀请码:a0c9

    题目链接:传送门 题目大意:略 题目思路:DP 先预处理,分别以每个字母为中心处理能形成的回文串,再以两个字母为中心处理能形成的回文串. 然后 dp[i] 表示1~i 能形成的数目最少的回文串. 转移 ...

随机推荐

  1. MFC的类层次结构图

  2. PLSQL_基础系列07_插入方式Pivoting / Unconditional / Conditional ALL / Conditional FIRST INSERT(案例)

    2014-12-08 Created By BaoXinjian

  3. php socket 学习

    socket超时设置 ini_set("default_socket_timeout", -1); stream_set_timeout $fp = fsockopen(" ...

  4. Html滚动文字

    <marquee style="WIDTH: 388px; HEIGHT: 200px" scrollamount="2" direction=" ...

  5. 转-Activity之间数据传递之Intent数据传递

    Intent意图 可用于Activity之间的数据传递,一般可分为下面两种情况,从当前Activity传递到目标Activity后有无返回值: 1.传递后无返回值的情况: 1 2 3 4 5 6 7 ...

  6. 【转】C++ 单例模式

    http://blog.csdn.net/hackbuteer1/article/details/7460019 单例的一般实现比较简单,下面是代码和UML图.由于构造函数是私有的,因此无法通过构造函 ...

  7. myBatis出现Mapped Statements collection already contains value for

    造成这个问题的原因很多,我遇到的主要是因为 <select id="queryCountfor****" parameterType="java.lang.Inte ...

  8. windows上传文件到linux

    1.在putty的网站上下载putty跟pscp 2.安装ssh跟putty sudo apt-get install openssh-server sudo apt-get install putt ...

  9. linux下修改path变量(转载)

    比如要把/etc/apache/bin目录添加到PATH中 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,每当登出PATH就会恢复 2.#vi /etc/profile 在 ...

  10. Ubuntu下删除配置错误或者失败的安装包

    aptitude purge $(dpkg -l|grep ^rc|awk '{ print $2 }') 解释:dpkg -l 列出系统中所有安装的软件,如果是已经删除的软件(有残存的配置文件),那 ...