HDU 4734 —— F(x)

TC387 MCMCAN Message RAM配置详解:Tx Buffer与Rx FIFO地址布局 在嵌入式CAN/CAN FD通信系统中,缓冲区和FIFO是数据收发的核心机制,而AURIX TC3xx系列单片机将这一机制集成在了MCMCAN模块专用的Message RAM中。这是一块由CAN控制器独占的内存区域,开发人员需要按照寄存器规范手动划分Tx Buffer、Rx FIFO、过滤元素等子区间。合理的RAM布局能确保不同功能区域互不重叠、有序排列,避免数据覆盖与错帧。通过掌握TXBC、RXF0C等配置寄存器的字段含义,结合实用的地址布局表,可以显著降低多节点CAN通信的调试成本。本内容面向使用TC3 阅读详情
Time Limit:500MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u
 

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
 
这题很关键的一点是要懂得,将终点统一为>=0
回顾很多的“数位DP”问题,它们的终点都是一致的!
 
#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
using namespace std;

int b[10], num[10];
int dp[10][9*((1<<10)-1)];

int dfs(int u, int f, bool limit)
{
    if(u < 1)    return 1;
    if(!limit && dp[u][f] != -1)    return dp[u][f];
    
    int maxn = limit ? b[u] : 9;
    int ret = 0, cur;
    
    for(int i=0; i<=maxn; i++) {
        cur = f - i*(1<<u-1);
        if(cur > 0) {
            ret += dfs(u-1, cur, limit && i==maxn);
        } else if(cur == 0) {
            ret += 1;
        }
    }
    
    if(!limit)    dp[u][f] = ret;
    return ret;
}

int f(int n, int a)
{
    int lenb=0;
    memset(b, 0, sizeof(b));
    while(n) {
        b[++lenb] = n%10;
        n /= 10;
    }
    return dfs(lenb, a, 1);
}

int main ()
{
    num[0] = 1;
    for(int i=1; i<10; i++) {
        num[i] = num[i-1] * 10;
    }
    
    int T, A, B;
    scanf("%d", &T);
    memset(dp, -1, sizeof(dp));
    for(int kase=1; kase<=T; kase++) {
        scanf("%d%d", &A, &B);
        int base = 1, F=0;
        while(A) {
            F += base * (A % 10);
            
            base <<= 1;
            A /= 10;
        }
        printf("Case #%d: %d\n", kase, f(B, F));
    }
    return 0;
}

 

视觉Transformer实战 | Token-to-Token Vision Transformer(T2T-ViT)详解与实现 Vision Transformer (ViT) 在计算机视觉领域取得了巨大成功,但标准的 ViT 存在一些局限性,如需要大规模预训练数据、对局部结构建模不足等。Token-to-Token ViT (T2T-ViT) 通过引入渐进式分词过程改进了原始 ViT,使其能够在中小型数据集上取得更好的性能。本节将详细介绍 T2T-ViT 的技术原理,并使用 PyTorch 从零开始实现 T2T-ViT。 阅读详情

相关推荐

Echats-wordcloud 文字云图的踩坑点【Unknown series wordCloud】

一直都是报 【ECharts Unknown series wordCloud】这玩意可能要刷脸,祝你好运吧~

Sky_Bug的博客 2417

【数位dp 好题】HDU - 4734 H - F(x)

H - F(x)  HDU - 4734  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 numb...

qq_41037114的博客 454

C# 读取图片和扫描PDF中的文本

本博客将探讨如何使用C#和OCR库实现从图片和扫描的 PDF 中提取文本。Spire.OCR for .NET 是一个OCR文字识别库,专为在 .NET 应用程序中识别图片的文本而设计。首先,使用 Spire.PDF 将扫描的 PDF 转换为图片,然后利用 Spire.OCR 从这些图片中提取文本。由于该OCR库并不支持直接处理PDF,因此要从扫描的 PDF 中提取文本,我们首先需要将 PDF 文档转换为图片。转换完成后,再利用 Spire.OCR 从生成的图片中提取文本。方法来识别图片中的文本。

nuclear2011的博客 5400

HDU 4734 F(x) (数位DP)

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, inclu

风的记忆 736

STM32裸机开发基础:寄存器直接操作详解

寄存器是微控制器内部的特殊存储单元,直接与硬件电路连接,用于控制和监视硬件功能。与普通内存不同,寄存器的每一位(bit)通常都有特定的硬件含义。寄存器就是机器的控制面板上的各种开关和指示灯每个开关控制一个具体功能(如打开LED、启动通信)每个指示灯显示一个具体状态(如数据接收完成、错误发生)// GPIO引脚定义1。

2401_88760782的博客 2186

基于FSL的DTI数据预处理流程

最近在学习处理DTI数据,总结了一份应用FSL做DTI数据预处理的流程与大家交流交流。如果有错误的地方欢迎大家指正!        我用的数据是Philips的数据,如果是GE或者西门子的数据可能会有所不同。   原始数据:包括3DT1数据和高分辨率DTI数据,均是dicom格式。 工具:MRICRON和FSL,所有的命令均在Linux的终端中运行。   1.格式转换:将后缀名为dcm

zaza_zaza的博客 2万+

hdu4734数位dp

HDU4734 Description For a decimal number x with n digits (A nA n-1A n-2 ... A2A1), we define its weight as F(x) = An * 2n-1 + An-1 * 2 n-2 + ... + A 2 * 2 + A1 * 1. Now you are given two nu

hdychi的博客 222

MS2107 CVBS转USB2.0 音视频采集芯片,支持1080P@30HZ输出

MS2107 是一款视频和音频采集芯片,支持CVBS转USB2.0 ;可以将 CVBS、S-Video 和音频信号通过 USB接口传送到 PC、智能手机和平板电脑上预览或采集。

TEL18967112838的博客 2075

##的用法

<br />#define Conn(x,y) x##y<br />#define ToChar(x) #@x<br />#define ToString(x) #x<br /><br />x##y表示什么?表示x连接y,举例说:<br />int n = Conn(123,456); 结果就是n=123456;<br />char* str = Conn("asdf", "adf")结果就是 str = "asdfadf";<br />怎么样,很神奇吧<br /><br />再来看#@x,其实就是给x加上

fulima007的专栏 3637

华为OD机试 新系统真题-收集灵草(Java/Py/C++/Go/C/Js)

华为OD机试 新系统真题【收集灵草】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【收集灵草】多语言题解。

qq_45776114的博客 544

上线之前多一道闸:业务审核系统的接入定义、双轨状态机与可靠生效闭环

运营后台“保存即生效”,让价格、库存、人群等配置每次修改都相当于一次无评审的上线。本文以至尊会员降价活动为例,系统拆解业务审核系统:用带业务语义的操作编码、规则化审核人与候选人快照、完整的生效回调契约做好接入定义;把业务改造为提交待生效,以不可变快照、字段级差异和唯一约束加幂等号防误配防重复;用审批轨与执行轨双轨状态机、链路式重新提交和以事件为准的审核链路理清状态;最后以发件箱、幂等键、超时先查后试、乐观锁与对账闭合生效环节,并结合两个可运行的Java程序,给出五种生效策略的事故率实测对比。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 6万+

【数位DP】 HDU 4734 F(x)

原题直通车: HDU 4734 F(x) 题意:F(x) = An * 2n-1 + An-1 * 2n-2 + ... + A2 * 2 + A1 * 1, 求0.....B中F[x]&lt;=F[A]的个数。 代码:   // 31MS 548K 931 B G++ #include&lt;iostream&gt; #include&lt;cstdio&gt; #include...

weixin_34200628的博客 85

YOLOv13改进策略【Neck篇】| GSConv 轻量卷积,Slim-Neck 减参数还不掉点

Neck 篇的第二篇继续"替换式"改进,这次的对象是 Neck 里的下采样卷积。GSConv 出自《Slim-neck by GSConv: a better design of lightweight detector》(2022),它的出发点:DWSConv(深度可分离)轻但"信息混不进通道",标准卷积重但表达好——GSConv 用GConv(分组卷积)混通道 + DWConv 补空间 + Channel Shuffle 打散,两全其美。

qq_53329130的博客 28

HDU 4734 F(x)(数位dp)

题目链接HDU 4734 F(x)题意对于一个nn位的数字xx,从高到低依次为AnAn−1...A1A_{n}A_{n-1}...A_{1}。定义:f(x)=An∗2n+An−1∗2n−1+⋯+A1∗2f(x)=A_{n}*2^{n}+A_{n-1}*2^{n-1}+\cdots +A_{1}*2。给两个数字A,BA,B,求区间[0,B][0,B]内f(x)≤f(A)f(x)\leq f(A)的数字

ramay7 676

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

(数位dp)HDU4734 F(x)

HDU4734 F(x) 题意&思路: f(x)的定义是,对于十进制数的每位(anan-1……a1),f(a)=an*2n-1+an-1*2n-2+……+a1*20。给你a和b,求在f(x)<=f(a),x∈[0,b]的个数。 又是数位dp,依旧没有思路。看了大佬的思路,惊为天人。 用dp[i][j]表示第i位,j是后面要凑的权值和。 需要的f(a)和你现在的总权值的差值,就是你在接...

Z7784562的博客 287

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【HDU】4734 F(x) 数位DP

传送门:【HDU】4734 F(x)

poursoul 622

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

[HDU - 4734] F(x) (数位dp)

[HDU - 4734] F(x) 题目链接 大致题意: f(x) = a(n)*2(n-1)+a(n-1)*2(n-2)+…a(2)*21+a(1)*20,( a(i)表示十进制数x中第i位的数字 ) 给出a,b,求出0~b有多少个不大于f(a)的数 解题思路: 首先先计算出f(a)的值 然后将f(a)的值作为初始值,每次递归减去每一位对应的数值,只要递归到最低位时sum>=0,说明满足条件,累加结果 AC代码: #include <bits/stdc++.h> using n

qq_49494204的博客 216

【数位DP(Sub)】HDU 4734 F(x)

HDU 4734 F(x) 思路: dfs里的cnt指的是当前pos位,高位还需要凑cnt的价值和。 例如211。第2位2,对应的cnt = 0 第1位1,对应的cnt = 0 + 2*(1 << 2) = 8 第0位1,对应的cnt = 8 + 1*(1 << 1) = 10 第-1位,对应的cnt = 10 + 1*(1 << 0) = 11 拿第-1位来...

L_X_ 247

HDU4734 F(x)[数位DP]

D - F(x) HDU - 4734 题意:求出存在[0,B]中x使得F(x)小于等于F(A)的数有多少个。题解:首先求出F(A)的值,用这个值作为标记的初始值,第一维代表当前位置,第二维代表剩余值。而第二维的取值,最多能达到9*9*2^8,计算过程中,如果sum小于0,代表不可能因为要保证必须比F(A)小,直接返回0,而减的过程中,直接用i*(1&lt;&lt;pos) (pos为当前位置,i...

ControlBear的博客 530

hdu 4734 F(x)(数位dp)

题目链接:hdu 4734 F(x) 题目大意:给定f(x)的计算公式,现在给出n和m,求有多少个x,x 解题思路:数位dp,dp[i][j]表示到第10i内,然后f值为j的总数。 #include #include #include using namespace std; const int maxn = 10000; int n, bit[15]; int dp[1

不慌不忙、不急不躁 961

[数位DP] HDU4734 F(x)

HDU4734 题意:设整数x的十进制表示为An*10^n-1 + An-1*10^n-2 ... A1*10^0, 定义函数F(x)=An*2^n-1 + An-1*2^n-2 +...+A1*10^0,然后对任意x∈[0, B]求F(x)值不超过F(A)的x的个数。 解法:数位DP。 DP[i][j]表示1~i位的数中F函数值不超过j的数的个数,DP[len][F(A)]即为答案。 技巧

穹妹的家 429

【数位DP】 HDU 4734 F(x)

原题直通车: HDU 4734 F(x) 题意:F(x) = An * 2n-1 + An-1 * 2n-2 + ... + A2 * 2 + A1 * 1, 求0.....B中F[x] 代码: // 31MS 548K 931 B G++ #include #include #include using namespace std; int digit[11], dp[11][60

PWZER 815

HDU4734 F(x) 数位DP

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4734 题目大意:我们定义十进制数x的权值为f(x) = a(n)*2^(n-1)+a(n-1)*2(n-2)+...a(2)*2+a(1)*1,a(i)表示十进制数x中第i位的数字。题目给出a,b,求出0~b有多少个不大于f(a)的数。 实现代码如下: /** 求给定区间1~B中

AC_Gibson的专栏 1222

HDU-4734 F(x)

数位dp

a free man 728

hdu 4734 F(x)(数位dp+优化)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4734 题意:我们定义十进制数x的权值为f(x) = a(n)*2^(n-1)+a(n-1)*2(n-2)+...a(2)*2+a(1)*1,a(i)表示十进制数x中第i位的数字。   题目给出a,b,求出0~b有多少个不大于f(a)的数 显然这题可以设这样的dp dp[len][co...

awow80285的博客 120

hdu_4734_F(x)(数位DP水)

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4734 题意:给你一个F(x)的定义,然后给你a,b,问你在0到b包括b有多少个数满足F(x)<=F(a) 题解:dp[i][j]为dp到第i位的和为j的方案 1 #include<cstdio> 2 #include<cstring> 3 #def...

weixin_30411997的博客 133
上一篇: POJ 3070 —— Fibonacci 【矩阵快速幂】
下一篇: HDU 3555 —— Bomb
AcIsFun
博客等级 码龄10年 1粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值