【数位dp】hdu2089 不要62
2024-10-21 11:39:04
http://www.cnblogs.com/xiaohongmao/p/3473599.html
#include<cstdio>
using namespace std;
int n,m,f[8][3];
void init()
{
f[0][0]=1;
for(int i=1;i<=7;++i)
{
f[i][0]=f[i-1][0]*9-f[i-1][1];
f[i][1]=f[i-1][0];
f[i][2]=f[i-1][2]*10+f[i-1][0]+f[i-1][1];
}
}
int work(int x)
{
int ans=0,t=x,bit[10],len=0;
while(t)
{
bit[++len]=t%10;
t/=10;
}
bit[len+1]=bit[len+2]=0;
bool flag=0;
for(int i=len;i;--i)
{
if((bit[i+1]==2 && bit[i+2]==6) || bit[i+1]==4)
flag=1;
ans+=f[i-1][2]*bit[i];
if(flag)
ans+=bit[i]*f[i-1][0];
else
{
if(bit[i] > 6)
ans+=f[i-1][1];
if(bit[i] > 4)
ans+=f[i-1][0];
if(bit[i+1] == 6 && bit[i] > 2)
ans+=f[i][1];
}
}
return x-ans;
}
int main()
{
init();
// freopen("hdu2089.in","r",stdin);
while(1)
{
scanf("%d%d",&n,&m);
if((!n) && (!m))
break;
printf("%d\n",work(m+1)-work(n));
}
return 0;
}
最新文章
- 简单的java socket 示例
- 配置 Haproxy 防范 DDOS 攻击
- 黑马程序员_java08_多线程
- [GeoServer]Openlayers简单调用
- Android ExpandableListView的技巧和问题
- 基于libuv库的UDP收/发广播消息代码实现
- #Leet Code# Root to leaf
- Cloud Foundry 中国群英会【上海站、成都站】资料宣传
- Missile:双状态DP
- 单向链表(C#)
- 17_8_9 Spring 注入
- python接口自动化(二十一)--unittest简介(详解)
- textarea 中的换行符
- 浏览器调起Hbuilder的APP
- python 浅析格式化输出和深浅copy
- 清理SharePoint 2013 安装配置环境
- 请问WCF 跟 WebService之间的相同跟异同
- webview自总结
- C# 播放铃声最简短的代码实现方式
- Hopper Disassembler v4 ( The macOS Disassembler, Decompiler and Debugger)
热门文章
- E. Intercity Travelling
- python函数超时,用装饰器解决 func_timeout
- nodejs是用来做什么的?
- 转:Spring AOP详解
- 关于ora-12154:TNS:could not resolve the connect identifier specified
- 查找算法总结Java实现
- 【bzoj1911-[Apio2010]特别行动队】斜率优化
- bzoj 1089 SCOI2003严格n元树 递推
- SpringMvc基础知识(一)
- System and method for parallel execution of memory transactions using multiple memory models, including SSO, TSO, PSO and RMO