LightOJ 1205 - Palindromic Numbers (数位dp)
来源:互联网 发布:派派刷钻石辅助软件 编辑:程序博客网 时间:2024/06/07 05:47
LightOJ 1205 - Palindromic Numbers (数位dp)
ACM
题目地址:SPOJ MYQ10 Mirror Number
题意:
求[a,b]中回文的个数。
分析:
是SPOJ MYQ01的简单版...其实有非递归方法的。
代码:
/** Author: illuz <iilluzen[at]gmail.com>* Blog: http://blog.csdn.net/hcbbt* File: 1205.cpp* Create Date: 2014-08-02 16:21:04* Descripton: digit dp, palindrome */#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define repf(i,a,b) for(int i=(a);i<=(b);i++)typedef long long ll;const int N = 20;int t, len, rec[N], bit[N];ll a, b, dp[N][N][2];ll dfs (int start, int cur, bool ismir, bool limit) {if (cur < 0)return ismir;if (!limit && dp[start][cur][ismir] != -1)return dp[start][cur][ismir];int mmax = limit ? bit[cur] : 9;ll ret = 0;repf (i, 0, mmax) {rec[cur] = i;if (start == cur && i == 0) {// if have lead zeroret += dfs(start - 1, cur - 1, ismir, (limit && (i == mmax)));} else if (ismir && cur < (start + 1) / 2) {// if ismirror and can judgeret += dfs(start, cur - 1, (i == rec[start - cur]), (limit && (i == mmax)));} else {ret += dfs(start, cur - 1, ismir, (limit && (i == mmax)));}}return limit ? ret : dp[start][cur][ismir] = ret;}ll calc(ll n) {len = 0;while (n) {bit[len++] = n % 10;n /= 10;}bit[len] = 0;return dfs(len - 1, len - 1, 1, 1);}bool check() {repf (i, 0, len / 2 - 1) {if (bit[i] != bit[len - 1 - i])return false;}return true;}int main() {memset(dp, -1, sizeof(dp));scanf("%d", &t);int cas = 1;while (t--) {scanf("%lld %lld", &a, &b);if (a < b) swap(a, b);printf("Case %d: %lld\n", cas++, calc(a) - calc(b) + check());}return 0;}
3 0
- LightOJ 1205 - Palindromic Numbers (数位dp)
- LightOJ 1205 - Palindromic Numbers (数位dp)
- LightOJ 1205 Palindromic Numbers(数位DP)
- LightOJ 1205 Palindromic Numbers(数位dp)
- [数位dp] lightoj 1205 Palindromic Numbers
- lightOJ 1205(Palindromic Numbers数位DP)
- lightoj 1205 - Palindromic Numbers 数位DP
- lightoj - 1205 Palindromic Numbers (数位dp)好
- Palindromic Numbers (数位dp)
- Palindromic Numbers(数位dp)
- Light oj 1205 - Palindromic Numbers(数位dp)
- Light OJ 1205-Palindromic Numbers-数位DP
- Light OJ 1205 Palindromic Numbers (数位DP)
- lightOJ1205 Palindromic Numbers(数位dp)
- LightOJ 1205 Palindromic Numbers
- LightOJ 1205 Palindromic Numbers
- LightOJ 1205 Palindromic Numbers
- Lightoj1205——Palindromic Numbers(数位dp+回文数)
- SLA简介
- 任务栏托盘
- UVALive 6170 (LA 6170) Esspe-Peasee 扩展欧几里得
- 利用数码相机SDK开发图像采集应用程序
- POJ 3436 ACM Computer Factory(网络最大流)
- LightOJ 1205 - Palindromic Numbers (数位dp)
- Android开发把项目打包成apk,安卓到手机上,或者提交到app应用商店
- 转载_debian(wheezy) 安装xfce
- BOJ 468. 小妹妹送快递
- 入职一月记
- stupid代码提交到github
- HDOJ2112
- 查询分页--oracle的rownum
- VC实现自动配置ODBC数据源