ABC336 A-E

明天F补完题就加上()

放假了又能网瘾漏w

上周的abc太简单了这周的好难,E出了个数位dp想法以为是想复杂了结果还真是...

Tasks - AtCoder Beginner Contest 336

A - Long Loong

题意:

输出龙的拼音,把'o'换成连续的n个'o'

代码:

void solve()
{int n;scanf("%d", &n);printf("L");while (n--)printf("o");printf("ng\n");
}

B - CTZ

题意:

输出n的二进制表示末尾有多少个连续的0

代码:

直接bitset偷懒了

void solve()
{int x;scanf("%d", &x);bitset<40>st = x;for (int i = 0;; ++i){if (st[i] != 0){printf("%d", i);return;}}
}

C - Even Digits

题意:

输出仅由偶数构成的十进制数中第k小的数

题解:

看成五进制即可,记得特判n=1的情况

void solve()
{LL n;scanf("%lld", &n);vector<int>ans;--n;if (n == 0){printf("0");return;}while (n){ans.push_back(n % 5);n /= 5;}while (ans.size()){printf("%d", ans.back() * 2);ans.pop_back();}
}

D - Pyramid

题意:

给出一个长度为n的正整数数组,你可以进行以下两种操作:

1:将一个元素-1 

2:在数组开头或者末尾删除一个元素

使得数组最终变成1,2,3,...,k-1,k,k-1,...,3,2,1的形式,求可能的最大的k

题解:

把每个ai想象成高度,找最大的k相当于是在这个图里找一个最大的金字塔形的东西,例如样例1:

22311   121#
###   -> #
#####   ###

l[i]表示点i在左斜边上时i位置的最大高度,转移为l[i] = min(l[i - 1] + 1, a[i]),r[i]同理,答案为max({ min(l[i], r[i]) }),具体做法见代码

int a[N], l[N], r[N];
void solve()
{int n, ans = 0;scanf("%d", &n);for (int i = 1; i <= n; ++i)scanf("%d", &a[i]);for (int i = 1, j = n; i <= n; ++i, --j){l[i] = min(l[i - 1] + 1, a[i]);r[j] = min(r[j + 1] + 1, a[j]);}for (int i = 1; i <= n; ++i)ans = max(ans, min(l[i], r[i]));printf("%d\n", ans);
}

E - Digit Sum Divisible

题意:

一个数的数位和为他的十进制表示上的所有数的和,当一个数能被他的数位和整除我们成这个数是好的数,求从0到n一共有多少个好的数

题解:

先枚举所有可能的数位和,对于每个数位和m我们做一个dp求数位和为m且能被m整除的小于等于n的数的数量:

设dp[i][j][k]为对于十进制数的前i位,数位和为j,该数当前的值取模m后的余数为k时的方案数,对于每个确定的dp[i][j][k],它转移到下一位时,设下一位填入的数为x,转移为:dp[i - 1][j + x][(k + x * pow(10, i - 1) % m] += dp[i][j][k],关于限制当前数小于等于n,我们只需要在求完每一位数之后把超过n的部分减去即可。大致思路是这样,具体做法见代码

题解中的数位和我在代码中用的是剩余的数位和,思路是一样的就是和题解中的转移j要反一下

LL pw[20], dp[16][140][140];
void solve()
{LL n, ans = 0;scanf("%lld", &n);LL t = n, mx = 0;vector<int>a;while (t)mx += t % 10, a.push_back(t % 10), t /= 10;mx = max(mx, a.back() - 1 + ((LL)a.size() - 1) * 9);pw[0] = 1;for (int i = 1; i < 20; ++i)pw[i] = pw[i - 1] * 10;for (int m = 1; m <= mx; ++m)//枚举数位和m{LL s = m, md = 0;//按n的每一位选数时的数位和和余数memset(dp, 0, sizeof dp);dp[a.size()][m][0] = 1;for (int i = a.size(); i > 0; --i)//第i位,准备填第i-1位{for (int j = 0; j <= m; ++j)//填数前数位和还剩j{for (int k = 0; k < m; ++k)//余数是k{for (int x = 0; x <= 9 && j - x >= 0; ++x)//第i-1位填x的转移dp[i - 1][j - x][(k + x * pw[i - 1]) % m] += dp[i][j][k];}}//减去超过上界的for (int x = a[i - 1] + 1; x <= 9 && s - x >= 0; ++x){int j = s, k = md;dp[i - 1][j - x][(k + x * pw[i - 1]) % m] -= 1;}s -= a[i - 1], md = (md + a[i - 1] * pw[i - 1]) % m;}ans += dp[0][0][0];}printf("%lld\n", ans);
}

写的挺抽象的,应该还有更好的做法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/622439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Scratch优秀作品飞翔小鸟

程序说明&#xff1a;在无尽的划痕堆中飞驰而过随着你越来越多地飞进迷宫般的街区&#xff0c;平台变得越来越难。 演示视频 scratch飞翔小鸟 其实这就是一个类似像素小鸟的程序&#xff0c;只不过水管角色就地取材&#xff0c;使用scratch里面的积木图片拼成了水管&#xff0…

网站漏洞扫描 awvs 23.11下载 Acunetix Premium build 23.11 for Linux 完美版

Acunetix Premium build 23.11 for Linux 完美版 更新日志&#xff1a; 网站漏洞扫描 awvs 23.11下载 新功能 Java IAST 传感器已更新为支持 Java 17 并删除了对 AspectJWeaver 的要求对管理适用于 Docker 和 Linux 的 Acunetix On-Premises 服务的机制进行了更改&#xff0…

LabVIEW利用视频分析实现高效硬度测量

LabVIEW利用视频分析实现高效硬度测量 在材料硬度测量领域&#xff0c;自动化和高精度测试技术的需求不断上升。布氏硬度机的自动化测量系统&#xff0c;尤其是那些结合了LabVIEW视频识别和处理技术的系统&#xff0c;正日益成为行业的焦点。介绍一个使用LabVIEW软件和先进的视…

Qt框架学习 --- CTK

系列文章目录 文章目录 系列文章目录前言一、准备阶段二、使用介绍1.核心思想2.源码2.1.框架部分资源目录树2.2.框架部分源码2.3.插件部分资源目录树2.4.插件部分源码 3.文件结构4.运行效果 总结 前言 随着开发的深入&#xff0c;CTK框架还是要关注一下。了解CTK还是有必要的。…

4D 毫米波雷达:智驾普及的新路径(二)

4 4D 毫米波的技术路线探讨 4.1 前端收发模块 MMIC&#xff1a;级联、CMOS、AiP 4.1.1 设计&#xff1a;级联、单芯片、虚拟孔径 4D 毫米波雷达的技术路线主要分为三种&#xff0c;分别是多级联、级联 虚拟孔径成像技术、以及 集成芯片。&#xff08; 1 &#xff09;多级…

deepspeed 安装 Windows

目录 目录 Window下安装deepspeed 报错No module named torch._six&#xff1a; 升级安装 解决方法&#xff1a; Window下安装deepspeed pip install deepspeed0.3.16 报错No module named torch._six&#xff1a; Traceback (most recent call last): File "\\t…

一张图总结架构设计的40个黄金法则

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;很多小伙伴拿到非常优质的架构机会&#xff0c;常常找尼恩求助&#xff1a; 尼恩&#xff0c;我这边有一个部门技术负责人资深架构师的机会&#xff0c;非常难得&#xff0c; 但是有一个大厂高P在抢&#xff0…

第18课 移植FFmpeg和openCV到Android环境

要在Android下从事音视频开发&#xff0c;同样也绕不开ffmpegopencv&#xff0c;不管是初学者还是有一定经验的程序&#xff0c;面临的首要问题就是环境的搭建和库文件的编译配置等问题&#xff0c;特别是初学者&#xff0c;往往会在实际开发前浪费大量的时间来编译ffmpeg及ope…

【Java 设计模式】设计原则之里氏替换原则

文章目录 1. 定义2. 好处3. 应用4. 示例结语 在软件开发中&#xff0c;设计原则是创建灵活、可维护和可扩展软件的基础。 这些原则为我们提供了指导方针&#xff0c;帮助我们构建高质量、易理解的代码。 ✨单一职责原则&#xff08;SRP&#xff09; ✨开放/封闭原则&#xff08…

【前后端的那些事】开源!前后端环境搭建+树形结构表格实现

文章目录 1. 前后端项目环境搭建2. table-tree2.1 后端准备2.2 前端准备 前言&#xff1a;最近写项目&#xff0c;发现了一些很有意思的功能&#xff0c;想写文章&#xff0c;录视频把这些内容记录下。但这些功能太零碎&#xff0c;如果为每个功能都单独搭建一个项目&#xff0…

py连接sqlserver数据库报错问题处理。20009

报错 pymssql模块连接sqlserver出现如下错误&#xff1a; pymssql._pymssql.OperationalError) (20009, bDB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (passwordlocalhost)\n) 解决办法&#xff1a; 打…

ES搜索的安装以及常用的增删改查操作(已经写好json文件,可以直接使用)

1.es的下载 https://www.elastic.co/cn/downloads/past-releases 2.elasticsearch安装及配置&#xff0c;遇到9200访问不了以及中文乱码&#xff0c;能访问了却要账户密码等问题 Elasticsearch启动后访问9200失败_http://localhost:9200无返回值-CSDN博客 3.开启es服务&#x…

ZZULIOJ 1112: 进制转换(函数专题)

题目描述 输入一个十进制整数n&#xff0c;输出对应的二进制整数。常用的转换方法为“除2取余&#xff0c;倒序排列”。将一个十进制数除以2&#xff0c;得到余数和商&#xff0c;将得到的商再除以2&#xff0c;依次类推&#xff0c;直到商等于0为止&#xff0c;倒取除得的余数…

C语言中关于指针的理解及用法

关于指针意思的参考&#xff1a;https://baike.baidu.com/item/%e6%8c%87%e9%92%88/2878304 指针 指针变量 地址 野指针 野指针就是指针指向的位置是不可知的&#xff08;随机的&#xff0c;不正确的&#xff0c;没有明确限制的&#xff09; 以下是导致野指针的原因 1.指针…

pytorch 通用训练代码讲解(very good)

文章目录 1. 模型训练参数设置2. 保证模型可复现性3. 设置device4 初始化模型权重及加载预训练权重4.1 初始化模型权重4.2 加载预训练权重4.3 在线下载预训练权重5 k-means 聚类anchors6 多卡同步bn及并行运行7 权重指数平滑ModelEMA7.1 EMA的原理及作用7.2 EMA的实现7.2 EMA的…

mysql原理--redo日志1

1.redo日志是个啥 我们知道 InnoDB 存储引擎是以页为单位来管理存储空间的&#xff0c;我们进行的增删改查操作其实本质上都是在访问页面&#xff08;包括读页面、写页面、创建新页面等操作&#xff09;。我们前边唠叨 Buffer Pool 的时候说过&#xff0c;在真正访问页面之前&a…

Hyperledger Fabric 通道配置文件解析

fabric 版本 v2.4.1 Fabric 网络是分布式系统&#xff0c;采用通道配置&#xff08;Channel Configuration&#xff09;来定义共享账本的各项行为。通道配置的管理对于网络功能至关重要。 通道配置一般包括通道全局配置、排序配置和应用配置等多个层级&#xff0c;这些配置都存…

好物周刊#36:程序员简历

村雨遥的好物周刊&#xff0c;记录每周看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;每周五发布。 一、项目 1. SmartDNS 一个运行在本地的 DNS 服务器&#xff0c;它接受来自本地客户端的 DNS 查询请求&#xff0c;然后从多个上游 DNS 服务器获取 DNS 查询…

JavaScript学习笔记——变量、作用域、var、const和let

JavaScript学习笔记——变量、作用域、var、const和let 学习链接&#xff08;原链接&#xff09;变量变量声明的三种方式 作用域作用域介绍作用域分类全局作用域局部作用域&#xff08;函数作用域&#xff09;块级作用域块级作用域和局部(函数)作用域区别 varvar的作用域(全局函…

单表的查询练习

一、单表查询 素材&#xff1a; 表名&#xff1a;worker-- 表中字段均为中文&#xff0c;比如 部门号 工资 职工号 参加工作 等 显示所有职工的基本信息。 mysql8.0 [chap03]>select * from worker; 查询所有职工所属部门的部门号&#xff0c;不显示重复的部门号。 mysq…