hdu 6156
来源:互联网 发布:windows 2012 mse 编辑:程序博客网 时间:2024/06/10 00:38
数位dp
#include<iostream>#include<stdio.h>using namespace std;typedef long long ll;int t,d[40],cur[40];ll L,R,l,r,dp[40][40][40][2];ll dfs(int k,int l,int r,bool flag,bool limit){ if(l==-1) return flag?k:1; if(!limit&&dp[k][l][r][flag]) return dp[k][l][r][flag]; int mx=limit?d[l]:k-1; ll ret=0; for(int i=0;i<=mx;i++){ cur[l]=i; if(i==0&&l==r) ret+=dfs(k,l-1,r-1,flag,limit&&(i==mx)); else if(flag&&l*2<=r) ret+=dfs(k,l-1,r,flag&&cur[l]==cur[r-l],limit&&(i==mx)); else ret+=dfs(k,l-1,r,flag,limit&&(i==mx)); } if(!limit) dp[k][l][r][flag]=ret; return ret;}ll solve(ll n,ll k){ int pos=0; while(n){ d[pos++]=n%k; n/=k; } return dfs(k,pos-1,pos-1,1,1);}int main(){ scanf("%d",&t); int cas=0; while(t--){ scanf("%lld%lld%lld%lld",&L,&R,&l,&r); ll ans=0; for(int i=l;i<=r;i++) ans+=solve(R,i)-solve(L-1,i); printf("Case #%d: %lld\n",++cas,ans); }}
阅读全文
0 0
- hdu-6156
- hdu 6156
- hdu 6156
- Hdu 6156 Palindrome Function
- HDU 6156 Palindrome Function
- HDU 6156 数位DP
- hdu 6156 Palindrome Function
- hdu 6156 数位dp
- hdu 6156 Palindrome Function
- HDU-6156 Palindrome Function
- HDU 6156 数位DP
- HDU 6156 数位DP
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- 加载本地pdf文件,关于so文件的坑
- 时间戳转为C#格式时间 (互转)
- 【LeetCode】Length of Last Word 解题报告
- Splay模板
- 初识html
- hdu 6156
- RCC相关头文件和固件库源文件
- Android 屏幕适配方案
- sizeof 关键字总结
- 3种web会话管理的方式
- Spark为何使用Netty通信框架替代Akka
- oracle database 12c Release 2-Managing Undo 翻译(第六章节)
- 使用SolrCloud出现org.apache.solr.common.SolrException: Collection not found: my_solr2
- Quaternion和AxisAngle的互相转换