lightoj 1205 - Palindromic Numbers 数位DP
来源:互联网 发布:gis软件下载 编辑:程序博客网 时间:2024/06/10 09:22
给定a,b,问[a,b]之间有多少个回文数....
肯定的数位DP...dp[i][j]代表i位数并且以j开头有多少个回文数...很容易想到转移方程dp[i][j]+=dp[i-2][k]...
但是边界如何处理...卡了好久。
看了xdlove博客,还要在对着边界dfs一发...
以后还是写记忆化搜索吧....苦逼
#include<bits/stdc++.h>using namespace std;#define ll long long#define ull unsigned long long#define mod 100000007#define inf 0x3f3f3f3fll dp[20][12],num[20];ll y,nm[20],cnt;ll dfs(int l,int r,int f){ if(l==r) { ll tmp=0; nm[l]=num[r]; for(int i=cnt;i>=1;i--) tmp=tmp*10+nm[i]; if(tmp<=y) return num[l]+1; return num[l]; } if(l>r) { ll tmp=0; for(int i=cnt;i>=1;i--) tmp=tmp*10+nm[i]; if(tmp<=y) return 1; return 0; } ll ans=0; for(int i=f;i<num[r];i++) ans+=dp[r-l+1][i]; nm[l]=nm[r]=num[r]; return ans+dfs(l+1,r-1,0);}ll solve(ll x){ if(x<0) return 0; if(x<10) return x+1; y=x; ll ans=1; cnt=0; while(x) { num[++cnt]=x%10; x=x/10; } for(int i=1;i<cnt;i++) { for(int j=1;j<=9;j++) ans+=dp[i][j]; } ans+=dfs(1,cnt,1); return ans;}int main(){ memset(dp,0,sizeof(dp)); for(int i=0;i<=9;i++) dp[1][i]=dp[2][i]=1; for(int i=3;i<=18;i++) { for(int j=0;j<=9;j++) { for(int k=0;k<=9;k++) dp[i][j]+=dp[i-2][k]; } } int t; scanf("%d",&t); for(int cas=1;cas<=t;cas++) { ll a,b; scanf("%lld %lld",&a,&b); if(b<a) swap(a,b); ll ans=solve(b); ans=ans-solve(a-1); printf("Case %d: %lld\n",cas,ans); } return 0;}
0 0
- 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
- LightOJ 1205 Palindromic Numbers(数位dp)
- lightoj - 1205 Palindromic Numbers (数位dp)好
- Light OJ 1205-Palindromic Numbers-数位DP
- Light OJ 1205 Palindromic Numbers (数位DP)
- lightOJ1205 Palindromic Numbers(数位dp)
- Palindromic Numbers (数位dp)
- Palindromic Numbers(数位dp)
- LightOJ 1205 Palindromic Numbers
- LightOJ 1205 Palindromic Numbers
- LightOJ 1205 Palindromic Numbers
- Light oj 1205 - Palindromic Numbers(数位dp)
- lightoj 1205 数位DP
- [POJ]百练2750(原POJ2750)鸡兔同笼
- Shodan搜索引擎介绍
- Local declaration of 'XXX' hides instance variable
- 数据库主从
- 解决Eclipse中SVN乱码问题
- lightoj 1205 - Palindromic Numbers 数位DP
- 用shape为view添加边框(可以部分添加)
- QQ音乐听歌升级漏洞-用C实现接口
- Form表单
- ProGaurd 代码混淆器
- ThinkPHP 3 的输出
- Storm 简介
- bzoj 1877: [SDOI2009]晨跑
- Eclipse 出现Access restriction(访问jar包限制)错误