博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 4734 F(x) (数位DP)
阅读量:7290 次
发布时间:2019-06-30

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

F(x)

Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 382    Accepted Submission(s): 137

Problem Description
For a decimal number x with n digits (A
nA
n-1A
n-2 ... A
2A
1), we define its weight as F(x) = A
n * 2
n-1 + A
n-1 * 2
n-2 + ... + A
2 * 2 + A
1 * 1. Now you are given two numbers A and B, please calculate how many numbers are there between 0 and B, inclusive, whose weight is no more than F(A).
 

 

Input
The first line has a number T (T <= 10000) , indicating the number of test cases.
For each test case, there are two numbers A and B (0 <= A,B < 10
9)
 

 

Output
For every case,you should output "Case #t: " at first, without quotes. The 
t is the case number starting from 1. Then output the answer.
 

 

Sample Input
3 0 100 1 10 5 100
 

 

Sample Output
Case #1: 1
Case #2: 2
Case #3: 13
 
题意
定义F(x) = An * 2n-1 + An-1 * 2n-2 + ... + A2 * 2 + A1 * 1。给A,B,求0到B的F(x)的小于等于F(A)的个数。
 
分析
数位DP。dp[i][j]为位数i的值小于等于j的个数。利用记忆化搜索
 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;typedef pair
pii;#define X first#define Y second#define pb push_back#define mp make_pairtypedef long long ll;#define ms(a,b) memset(a,b,sizeof(a))const int inf = 0x3f3f3f3f;const int maxn = 2e5;const int mod = 1e9+7;#define lson l,m,2*rt#define rson m+1,r,2*rt+1int dp[15][maxn];int bit[15];int F(int A){ int len=0; int res=0; while(A){ res += (A%10)*(1<
=0; if(num<0) return 0; if(!limit && dp[pos][num]!=-1) return dp[pos][num]; int ed=limit?bit[pos]:9; int ans=0; for(int i=0;i<=ed;i++){ ans+=dfs(pos-1,num-i*(1<

 

转载于:https://www.cnblogs.com/fht-litost/p/8970161.html

你可能感兴趣的文章
JavaWeb中文乱码的处理一
查看>>
玩转虚拟化VMWare之二: vCenter Server安装配置和主机管理
查看>>
HDU - 3183 A Magic Lamp
查看>>
Linux的诞生
查看>>
svn 提交过程遇到无法提交的问题
查看>>
XerverVM磁盘扩展
查看>>
Python之PyChart画图方法
查看>>
Contains Duplicate II leetcode
查看>>
rman备份概述
查看>>
ubuntu内核配置欣赏
查看>>
修改resolv.conf对于运行中服务不生效问题处理
查看>>
Java程序发送邮件的两种方法
查看>>
MySQL之主从复制和读写分离(Amoeba)
查看>>
玩转awk
查看>>
Linux中逐行读取文件的方法
查看>>
linux 内核该怎么优化
查看>>
自学asp.net笔记 - 第一节 C#基础简略学习
查看>>
selinux、暱名上传文件到ftp服务器
查看>>
socket编程原理
查看>>
Spark操作—aggregate、aggregateByKey详解
查看>>