博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高校俱乐部第二届战神杯题解
阅读量:4570 次
发布时间:2019-06-08

本文共 1169 字,大约阅读时间需要 3 分钟。

Njzy学习了回文串后联想到了回文数,他希望统计出一个区间内的全部回文数。

如今给定一个闭区间[a,b],求这个区间里有多少个回文数。比方[20,30],仅仅有一个回文数那就是22.

 输入描写叙述:   输入包括多组測试数据,每组測试数据包括两个整数a,b,(0<a<=b<10^6)。

输出描写叙述:   对于每组測试数据输出对应的答案。

思路:水题。这个明显是水神杯...聪明的你,肯定不会暴力求解的....对吧?!

太聪明的你,说不定还会当成线段树来拍...可是正常的你,应该会dp一下吧。

大概就是。一次遍历。考虑[0,i]的回文数个数。[l,r]的回文数就是[0,r]-[0,l-1]最后每次查找就是O(1),输出ans[m]-ans[n-1],与CF的前次非常像的做法。我当时用了线段树!

dp方程就是 dp[i]=dp[i-1]+symm(i)。

/***********************************************************	> OS     : Linux 3.2.0-60-generic #91-Ubuntu	> Author : yaolong	> Mail   : dengyaolong@yeah.net 	> Time   : 2014年06月03日 星期二 17:53:49 **********************************************************/#include
#include
#include
#include
using namespace std;int ans[1000001];bool symm(int m){int temp = m,n=0;while (temp){n = n*10+temp%10;temp = temp/10;}return (m == n);}int main(){ ans[0]=0; for(int i=1;i<=1000000;i++){ if(symm(i)){ ans[i]=ans[i-1]+1; }else{ ans[i]=ans[i-1]; } } int n,m; while(cin>>n>>m){ cout<
<

转载于:https://www.cnblogs.com/yxwkf/p/5260969.html

你可能感兴趣的文章
Android在Eclipse上的环境配置
查看>>
面向对象(五)
查看>>
android平台下使用点九PNG技术
查看>>
Python学习3,列表
查看>>
最长回文子串
查看>>
JAVA基础-JDBC(一)
查看>>
js中for和while运行速度比较
查看>>
算法第5章作业
查看>>
7.9 练习
查看>>
基于ArcGIS JS API的在线专题地图实现
查看>>
learnByWork
查看>>
lua 函数
查看>>
Git的基本命令
查看>>
四平方和
查看>>
第十八周 12.27-1.2
查看>>
C# IP地址字符串和数值转换
查看>>
TCHAR和CHAR类型的互转
查看>>
常用界面布局
查看>>
C语言—— for 循环
查看>>
IBM lotus9.0测试版即将公测
查看>>