2018 ACM 国际大学生程序设计竞赛上海大都会赛 J [Beautiful Number]

2018年ACM国际大学生程序设计竞赛真题 2018年ACM国际大学生程序设计竞赛真题 2018年ACM-ICPC决赛试题 立即下载

链接:https://www.nowcoder.com/acm/contest/163/J
来源:牛客网

时间限制:C/C++ 8秒,其他语言16秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

NIBGNAUK is an odd boy and his taste is strange as well. It seems to him that a positive integer number is beautiful if and only if it is divisible by the sum of its digits.
We will not argue with this and just count the quantity of beautiful numbers from 1 to N.

输入描述:

The first line of the input is T(1≤ T ≤ 100), which stands for the number of test cases you need to solve.
Each test case contains a line with a positive integer N (1 ≤ N ≤ 1012 10 12 ).

输出描述:

For each test case, print the case number and the quantity of beautiful numbers in [1, N].

示例1

输入

2
10
18

输出

Case 1: 10
Case 2: 12

Solution

数位DP。与BZOJ1799如出一辙,数据小了些,测试样例变多组而已。
考虑枚举1..12*9这108个可能的除数,因1.. 1012 10 12 之内数字的各位数字之和最小是1最大是12*9=108;
还是从高位到低位枚举,下标pos-1到0,每次枚举的数位和作为令符合要求的被除数可以整除的模数mod,同时也是各位数字之和sum.
dp[pos][sum][val][0]: 表示到了第pos位,各位数字和是sum,前面pos位形成的数模当前枚举的mod为val,且前pos位全都和原数x相等的数的个数;
dp[pos][sum][val][1]: 表示到了第pos位,各位数字和是sum,前面pos位形成的数模当前枚举的mod为val,且前pos位全都小于原数x的数的个数.

#include <bits/stdc++.h>

#define ll long long
using namespace std;
ll dp[12][110][110][2];
int bit[15];

ll dfs(int pos, int sum, int val, int mod, bool limit) {
    if (sum - 9 * pos > 9) return 0;
    if (pos == -1) return sum == 0 && val == 0;
    if (dp[pos][sum][val][limit] != -1) return dp[pos][sum][val][limit];
    int up = limit ? bit[pos] : 9;
    ll ans = 0;
    for (int i = 0; i <= up; i++) {
        if (sum < i) break;
        ans += dfs(pos - 1, sum - i, (val * 10 + i) % mod, mod, limit && i == bit[pos]);
    }
    return dp[pos][sum][val][limit] = ans;
}

ll solve(ll n) {
    int l = 0;
    while (n) {
        bit[l++] = n % 10;
        n /= 10;
    }
    ll res = 0;
    for (int i = 1; i <= l * 9; ++i) {
        memset(dp, -1, sizeof(dp));
        res += dfs(l - 1, i, 0, i, 1);
    }
    return res;
}

int T;
ll x;

int main() {
    //freopen("../in", "r", stdin);
    scanf("%d", &T);
    for (int I = 1; I <= T; ++I) {
        printf("Case %d: ",I);
        scanf("%lld", &x);
        if (x == 1000000000000) printf("%lld\n", solve(999999999999) + 1);
        else printf("%lld\n", solve(x));
    }
    return 0;
}
瑞芯微RK3576开发板实战:6TOPS NPU如何加速你的AIoT项目(附性能测试) 本文以瑞芯微RK3576开发板为核心,深入探讨其6TOPS NPU在AIoT项目中的实战应用。通过详细的性能测试对比,展示了NPU如何将AI模型推理速度提升15倍以上,并大幅降低CPU负载。文章涵盖从环境搭建、模型转换优化到多屏异显与系统级调优的全流程,为开发者提供了将硬件算力转化为实际项目加速效果的完整指南。 阅读详情

相关推荐

保姆级教程:用Cesium的Primitive API实现火箭发射全流程动画(含代码避坑)

本文详细介绍了如何使用Cesium的Primitive API实现火箭发射全流程动画,包括模型控制、关节动画和精细时序管理。通过实战代码示例和性能优化技巧,帮助开发者高效构建高复杂度航天仿真系统,显著提升三维可视化效果与运行效率。

weixin_42565652的博客 213

SICNU-ACM第一次蓝桥选拔模拟赛(acm血泪史~~~~)

acm血泪史~~~~J 题 奖杯争夺赛A.(填空题)冒泡 计算交换次数B. (填空题)手指计数C.(填空题)欢欢不想爆零D.斐波拉七E. (填空题)神奇汉诺塔 太烦了 真的真的真的 为啥要在危险的地方蹦跶嘛!!! 比赛补题链接 比赛成绩 J 题 奖杯争夺赛 先说说这个题!!!! (原题在今年的上海理工蓝桥练习赛)链接 蓝桥 属于常考的 DP题目 真的 我一看 不就是动归嘛 还是太狂妄 太大意了 竟然觉得 f【-1】【0】这样的 也没啥 完全不觉得在超限的范围 要遭 如果有i-1 那

惟愿一生无悔也无憾 689

Unity Acceleratorc与Cache Server unity的缓存服务器

文章目录1.作用概述2.用法(使用,看这个就够了)服务端下载部署Unity Acceleratorc修改http管理端口修改Editor连接端口客户端使用(设置好一次提交设置,团队拉取即可全部生效)3.测试平台切换测试资源导入测试(打开编辑器的情况下)项目启动测试(不打开编辑器的情况下)4.不同版本表现5.服务端监控6.服务端缓存7.冲突8.预警9.不同项目/不同配置-同种资源10.缓存清除 1.作用概述 编辑器模式下,导入资源,切换平台unity都会重新识别资源,大型项目很浪费时间,使用Cache Ser

euphorias的博客 3812

2018ACM上海大都会赛: A. Fruit Ninja(这绝对是道原题+随机)

题目描述 Fruit Ninja is a juicy action game enjoyed by millions of players around the world, with squishy, splat and satisfying fruit carnage! Become the ultimate bringer of sweet, tasty destruction with...

加载中... 1221

【数学建模】编程手学习路线

在学习过程中,建议注重理论与实践相结合,多进行实例练习和项目实践,以巩固所学知识并提升实际应用能力。同时,保持对新技术和新方法的关注和学习,不断提升自己的专业素养和竞争力。NumPy、Pandas、Matplotlib和Seaborn等库是数据处理和可视化的重要工具。掌握常用机器学习算法的原理和应用,如决策树、支持向量机、神经网络等。学习内容包括微积分、线性方程组、矩阵运算、概率分布、统计推断等。学习内容包括基本语法、函数和模块、面向对象编程、文件操作等。深入了解优化理论和方法,如梯度下降法、牛顿法等。

2301_79586491的博客 2962

Flink 作业报错——TaskManager连接不上

Flink 作业报错——TaskManager连接不上

lm223的博客 1901

@2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 A:Fruit Ninja( 随机数)

链接:https://www.nowcoder.com/acm/contest/163/A 来源:牛客网   Fruit Ninja is a juicy action game enjoyed by millions of players around the world, with squishy, splat and satisfying fruit carnage! Become the...

Sizaif's 小屋 407

【异常】 OpenClaw 超长入参报错排查与解决方案 [错误]: 400 <400> InternalError.Algo.InvalidParameter: Range of input leng

摘要: OpenClaw服务调用出现400 InvalidParameter报错,核心原因为输入内容长度超出1-129024字符限制。解决方案包括:1)紧急精简冗余入参;2)标准分块处理长文本;3)客户端增加预校验模块;4)长期可申请调整服务规格。该错误属于客户端参数校验异常,通过合理控制输入长度或分批次处理即可解决,重点需保证语义完整性。建议优先采用自动化预校验机制,从源头预防问题发生。(149字)

奶爸的编程之路,也就一周冷个三天 1989

上海ACM/ICPC归来

        终于回来了, 总算以自已近半年的ACM学习一个还算满意的交待了. 这次除了大陆的60支队伍外,居然还有韩国新加坡等的12支队伍... 上海一行,收获还是很多的,嗯, 等一段稳定后,肯定写N篇回忆下吧:)果然考场和训练是二回事, 平时也是同样的练习做题, 差不多同样的难度题,各队基本上都是五六题才能进前三十,而真正在比赛的时候, 每个队却基本上只能发挥百分五六十, 因为紧张是高强度思

pipo的专栏 1775

R语言机器学习算法实战系列(十五)随机森林生存预后模型+SHAP值 (Random Survival Forest + SHAP)

本教程运用随机森林生存分析筛选与患者生存状态显著相关特征。该方法借随机森林这一强大机器学习算法,构建多棵决策树并集成结果,以提高生存分析准确性,识别关键生物标志物。接着,利用选定特征构建风险得分,将多个特征转化为单一数值,量化患者风险水平。之后,依据风险得分将患者分为高、低风险亚型,为临床治疗提供个性化指导。最后,通过分析时间依赖的 ROC 曲线评估模型长期预测能力。此曲线计算不同阈值下的真正例率与假正例率,在多个时间点评估,全面展现模型长期稳定性与准确性。。并且增加了SHAP值评估特征重要性

专注生信领域 2624

SAP 针对不同行业(制造业、零售业、金融业)推出了专属的云解决方案,以下是各行业的核心方案与特点

SAP推出行业专属云解决方案:制造业(SAP Digital Manufacturing Cloud)提供AI排产与质量预警,降低缺陷率;零售业(S/4HANA Cloud零售版)实现AI预测补货与全渠道库存同步,减少浪费;金融业(Business ByDesign)支持合规自动化与实时风控,降低审计成本。各方案均采用云原生架构,典型案例显示实施效果显著。

金牌架构师 493

2018 ACM 国际大学生程序设计竞赛上海大都会赛 J.Beautiful Numbers(数位dp)

题目 如果一个数能被它的数位和整除,则称这个数是美丽的数 给你一个整数n(1<=n<=1e12),统计[1,n]中有多少个数是美丽的数 思路来源 https://blog.youkuaiyun.com/sunyutian1998/article/details/81433749 题解 dp的第一维肯定是位数,第二维也肯定是当前的数位和 而第三维则是在枚举的数位和的情况下,对应的余数,...

小衣同学的博客 354

ardupilot SBUS输入捕获

本节主要记录ardupilot 的sbus 输入捕获功能。ardupilot 默认支持多种无线协议控制输入设备,比如常用的PPM,SBUS,IBUS,DSM,SUMD,SRXL等协议,本节主要讲解ardupilot 如何通过定时器的pwm输入捕获来获取sbus数据。

陌城烟雨 271

2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 J-Beautiful Numbers

链接:https://www.nowcoder.com/acm/contest/163/J   题目描述 NIBGNAUK is an odd boy and his taste is strange as well. It seems to him that a positive integer number is beautiful if and only if it is divisib...

hao1001的博客 288

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

2018 ACM 国际大学生程序设计竞赛上海大都会赛-J:Beautiful Numbers(数位DP)

链接:https://www.nowcoder.com/acm/contest/163/J 时间限制:C/C++ 8秒,其他语言16秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 NIBGNAUK is an odd boy and his taste is strange as well. It seems to ...

Mitsuha_的博客 796

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 J Beautiful Numbers 数位DP

定义一个数字a是Beautiful Number当且仅当 a能被a的各位数字之和整除。问给一个N 求 1 --- N有多少个Beautiful Number。 N &lt;= 1e12 看了这道题才去学的模版。。。 放一个理解模版的博客链接http://www.cnblogs.com/xz816111/p/4809913.html 解: N最多13位,各位数字之和范围 1---12*9, ...

yizhibaiwuya的博客 493

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 J.Beautiful Numbers

题目: 给你一个数,如果这个数能被这个数的各个数位上的数的和整除,那么这个数是beautiful number. 给你一个n, 求从1到n有多少个漂亮数。 输入: 样例T 每行一个n 输出: 小于n的beautiful number 的个数(1 ≤ N ≤ 1e12). 一道数位dp题,感觉数位dp,一般sum值很大,数组肯定开不下,所以要尽可能的压缩sum的值,这道题假设n有len...

Paradise_tht的博客 282

2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 J Beautiful Numbers

传送门 题意:问你从[1,N]有多少个数能被自身的SOD(sum of digits)整除 题解:数位dp,枚举SOD,因为最多只有12位,所以只要枚举1到12*9,一维记录pos,二维记录当前剩余要达到的SOD,三维记录当前的余数。因为取余对+-*没有影响,我们可以在前往下一个pos的同时对原来的余数*10再加上当前pos所枚举到的数,再进行取余就是到达下一个pos的余数。 #incl...

weixin_33701251的博客 140

@2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛: J Beautiful Numbers (数位DP)

题目链接:https://www.nowcoder.com/acm/contest/163/J 链接:https://www.nowcoder.com/acm/contest/163/J 来源:牛客网   NIBGNAUK is an odd boy and his taste is strange as well. It seems to him that a positive intege...

Sizaif's 小屋 224

2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛JBeautiful Numbers

链接:https://www.nowcoder.com/acm/contest/163/J 来源:牛客网   时间限制:C/C++ 8秒,其他语言16秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 NIBGNAUK is an odd boy and his taste is strange as well. It se...

这里RevolIA,_(:з」∠)_ 331

2018 ACM 国际大学生程序设计竞赛上海大都会赛——J Beautiful Numbers(数位DP)

题目描述 NIBGNAUK is an odd boy and his taste is strange as well. It seems to him that a positive integer number is beautiful if and only if it is divisible by the sum of its digits. We will not argue ...

kuronekonano的博客 339

hihocoder1791 幸运数字(数位dp) 也是The 2018 ACM-ICPC上海大(家)都会赛 J Beautiful Numbers

http://hihocoder.com/problemset/problem/1791   题目求的是1-n中有多少个数能够整除它自己各数位上的数之和。 因为n的范围到1e12 所以这道题中各数位相加的和最大也是99 所以我们可以枚举1-99,求1-n中有多少数各数位和为i且能整除i , 就和那道B-Number一样了,只不过是进行99次数位dp而已。     #includ...

三水的鱼塘♂ 742

Number Sequence

Problem DescriptionA number sequence is defined as follows:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.Given A, B, and n, you are to calculate the value of f(n).InputThe input consi...

weixin_41082100的博客 284

2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 D-Thinking-Bear magic

链接:https://www.nowcoder.com/acm/contest/163/D 来源:牛客网   题目描述 In order to become a magical girl, Thinking-Bear are learning magic circle. He first drew a regular polygon of N sides, and the length of ...

hao1001的博客 472

2018 ACM上海大都会赛 J-Beautifule Number(数位DP应用)

NIBGNAUK is an odd boy and his taste is strange as well. It seems to him that a positive integer number is beautiful if and only if it is divisible by the sum of its digits. We will not argue with th...

PleasantlY1的博客 380

2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛

A 由于小数点之后只有一位,可以随机一下。 #include&amp;lt;bits/stdc++.h&amp;gt; using namespace std; const int canshu=10; int cs; int t,n; double x; struct node{ double x,y; int num; }a[10005]; int tot; bool cmp(n...

ACM, deep love 372
上一篇: 2018 ACM 国际大学生程序设计竞赛上海大都会赛 H [A Simple Problem with Integers]
下一篇: 2018 ACM 国际大学生程序设计竞赛上海大都会赛 F [Color it]
cybbsc
博客等级 码龄10年 15粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值