AtCoder Beginner Contest 281 (A-F,口胡G)青大acmer 日常vp

news2024/11/24 17:01:34

A - Count Down
输出小于等于 n n n的数
代码

B - Sandwich Number
题意 问字符串是否是第一个和最后一个字符是大小写,中间的字符是 100000 − 99999 100000-99999 10000099999之间的数字。
暴力模拟即可,需要注意的例子是 A 0100000 A A0100000A A0100000A
代码

C - Circular Playlist
题意 给你一个循环的时间安排表,给你时间,问你最后在哪个活动,做了多长时间。
考察了取模,取模后看看模数在哪个活动即可
代码

D - Max Multiple
题意 给你n个数,选k个数能组成d的最大倍数,问这个倍数为多少
思路:考虑dp,我们把d的倍数看成对 d d d取模为0,然后转化为模数问题,然后暴力dp即可。
代码

E - Least Elements
题意 问你所有长度为 m m m的区间前k个数的和并打印出来。
思路 两种做法
1.对顶堆暴力判断,我们每次把在区间外的删除,然后加到一个堆上,调整堆,让第一个堆的大小为 k k k
即可。
调整思路: 如果第一个堆的大小小于k,我们从第二个堆最小的一个一个拿过来,大于k的话就把第一个堆最大的数一个一个放到第二个堆即可,代码也好些,思路比较好想。
2.树状数组模拟即可。
第二种思路代码

F - Xor Minimization
题意 给你一个 a a a数组,任取 x x x,求所有数的异或和最大的最小值。
图例:
在这里插入图片描述

思路:看到异或自然想到拆位,很容易发现这是一道字典树方向的题目,继续思考,发现一个性质,考虑在字典树上dfs,因为当我们选择了 x x x这一位取0时,我们可以显而易见的发现,这一位为0的一定不可能为最大值,我们就往1上遍历 (完全不用考虑0子树的情况) 。仔细推敲可以发现一种比较好写的写法。
我们遍历字典树的时候,如果这个子树(考虑小于等于 k k k位的情况)如果两个子树( 0 0 0子树和 1 1 1子树)都存在的话,那我们往哪递归都一定让答案第 k k k为1,有一个子树为空,答案可以走到不为空的子树让答案为0,暴力dfs即可。
我写了一种比较好写的递归,核心代码如下

void dfs(int u , int k , int ans){
	if(k == -1) {
		tot = min(ans , tot) ; 		
	}
	else {
		if(son[u][0]) 
			dfs(son[u][0] , k - 1 , ans | ((son[u][1] != 0) << k) ) ;
		if(son[u][1])
			dfs(son[u][1] , k - 1 , ans | ((son[u][0] != 0) << k) ) ; 
	}
}

代码

G - Farthest City
vp时没时间去写这道题了,但是想到了一个很好想而且非常好实现的代码,由于本人懒没有写 ,接下来就是口胡思路 。

题意
给你一个大小为 n n n的子树,问你图的数量,图满足1到除 n n n之外的点都严格小于 n n n
思路 看到这个题,首先一个比较快的想法是要先建树,与最短路相关的树就是最小路径树,我们考虑最小路径树的建立方式,我们为了不会重复计数,我们可以一层一层地有标号计数去统计答案,由于题目要求的是图的数量,我们肯定会存在非树边,手玩也可以发现非树边一定是在同一层或相邻层之间的两个节点之间建立的,也是一种横叉边的说法,这个时候用到了相邻层的数量,所以考虑维护当前层和相邻层的数量, d p dp dp的建立方式也就出来了,我们考虑 d p dp dp为当前已经包含了 n n n个节点,上一层有 m m m个节点,当前层有 k k k个节点的方案数,值得需要注意的是我们第 n n n个点一定最后加而且一定加到层的最后面。
然后考虑 d p dp dp转移,我们dp转移考虑两个方面
1.加到当前层 d p [ n ] [ m ] [ k ] dp[n][m][k] dp[n][m][k]肯定是由 d p [ n ] [ m ] [ k − 1 ] dp[n][m][k - 1] dp[n][m][k1]转移过来,然后可以选择的操作是,加到当前层一定是由上一层转移过来,我们可以选择上一层的多个节点(不能为0)连接起来,方案数是 2n - 1 ,减去了都不选的情况。同一层的我们可以选择若干条连接(可以为空) , 方案数为 2n,然后就是标号的选择是 N N N- n n n
2.如果考虑成为最高的一层(加到当前最大的一层),转移为 d p [ n ] [ m ] [ 1 ] dp[n][m][1] dp[n][m][1],由dp[n][k][m]转移过来,这一步转移是 O ( m ) O(m) O(m)的过程,总共只有 O ( n 2 ) O(n^2) O(n2)次不影响时间复杂度。然后非树边的连接方式类似。
最后考虑 n n n的连接和上述的第二步类似,直接输出方案即可。

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

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

相关文章

day14-常用API

1.API 1.1 API概述【理解】 什么是API ​ API (Application Programming Interface) &#xff1a;应用程序编程接口 java中的API ​ 指的就是 JDK 中提供的各种功能的 Java类&#xff0c;这些类将底层的实现封装了起来&#xff0c;我们不需要关心这些类是如何实现的&#xff…

VScode-git提交 无法推送refs到远端

在将代码同步到远端仓库时&#xff0c;弹窗提醒”无法推送refs到远端。您可以试着运行”拉取”功能&#xff0c;整合您的更改“ 但尝试后发现“拉取”功能也无法解决问题&#xff0c;最后是因为文件过大原因&#xff0c;在这里记录一下解决方法&#xff0c;并整理了另一种可能…

传输层协议:套接字Socket

介绍 socket是一种操作系统提供的进程间通信机制。 在操作系统中&#xff0c;通常会为应用程序提供一组应用程序接口&#xff08;API&#xff09;&#xff0c;称为套接字接口&#xff08;英语&#xff1a;socket API&#xff09;。应用程序可以通过套接字接口&#xff0c;来使…

大数据分析案例-基于决策树算法构建金融反欺诈分类模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

春节期间外贸老鸟们都会掌握的那些事(内含祝福话术及邮件模板)

中国外贸规模在长期疫情的大环境下&#xff0c;外贸业界克服诸多困难&#xff0c;实现了量稳质升。随着我们迈入2023年&#xff0c;外贸人除了需要继续“强身健体”外&#xff0c;同时也将面临更多的挑战&#xff0c;本期Boom将从四个维度给大家分享临近中国春节期间&#xff0…

入门PostgreSQL,pg的历史,为什么说pg是国产化的方向,与mysql的比较

目录一、PG简介1、PG的历史2、PG的社区3、PostgreSQL与MySQL的比较一、PG简介 PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS)&#xff0c;在灵活的BSD许可证下发行。 PostgreSQL 开发者把它念作 post-gress-Q-L。 PostgreSQL 的 Slogan 是 “世界上最先进的开源关系…

python-MySQL数据库基础(三)MySQL与python交互

MySQL与python交互 用python代码来连接数据库&#xff0c;执行SQL语句&#xff0c;来查询到数据库中的数据。 当一张表中的数据量比较多时&#xff0c;而我们只需要查询其中的某个字段数据&#xff0c;直接查询会导致效率降低&#xff0c;此时就需要建立分表。 python操作MySQ…

君乐宝,高端之路不好走

文|螳螂观察 作者|kinki 近日&#xff0c;奶粉巨头雅培发表声明称&#xff0c;将逐步停止中国大陆市场的婴幼儿和儿童营养产品的运营和销售&#xff0c;一直以来&#xff0c;雅培都是中国奶粉市场前十名的“常客”&#xff0c;但近年却跌出了“前十”的位置。 雅培的退出&am…

2023年DataWhale 1月Free Excel 第三次打卡

第三章 Excel的表合并 Excel的合并计算工具可以快速完成多个表的行列记录合并。 1.多表行合并 问题&#xff1a;在3个消费表格中&#xff0c;每个客户的消费金额不同&#xff0c;使用多表合并功能统计每个客户消费的总金额。 具体步骤&#xff1a; 1.选择需要汇总的单元格…

ZooKeeper 技术内幕|Leader 选举是一个什么样的过程

几个问题&#xff0c;引发思考&#xff1a; 什么时候 leader 选举&#xff1f; 选举的过程&#xff1f; 选举过程中&#xff0c;是否能提供服务&#xff1f; 选举结果&#xff0c;是否会丢失数据&#xff1f; 服务器角色 2 个小问题&#xff1a; 服务器节点有多少角色&…

如何实现连杆码垛机械臂的逆解计算?

1. 连杆码垛机械臂介绍 连杆码垛机器人是工业应用场景中常用的一种机械臂&#xff0c;常用于简单的大负载搬运作业场景。常见的连杆码垛机械臂都是4个自由度&#xff0c;相较于6轴和7轴的机械臂成本较低。 连杆码垛机械臂的运动特性是&#xff1a;末端始终平行于地面。第一个平…

【算法】一篇文章弄清楚KMP算法的实现

目录 前言&#xff1a; 一.KMP算法简介&#xff1a; 二.next数组的介绍及实现 三.next数组的优化 四.伪代码和完整代码的实现 总结&#xff1a; 博客主页&#xff1a;张栩睿的博客主页 欢迎关注&#xff1a;点赞收藏留言 系列专栏&#xff1a;c语言学习 家人们写博客真…

小白的性能测试探索之路(1)

​​​​​​​ 某一天&#xff0c;领导突然就拉了个会说&#xff0c;我们成立稳定性专项&#xff0c;以测试为主力提升服务的整体稳定性&#xff1f; 当时我的内心是&#xff1a;“what”&#xff0c;性能测试我完全没接触过呀&#xff0c;i am a little tester&#xff5e;而…

华为MPLS-HubSub组网实验配置

目录 配置接口IP地址以及底层IGP协议 配置MPLS LDP协议 Sub与Hub建立Vpnv4邻居 配置PE与CE对接命令 Sub-PE与CE对接配置 Hub与CE对接配置 发现问题 PE与CE之间都采用EBGP方式进行路由传递 MPLS隧道——Hub&Spoke组网_静下心来敲木鱼的博客-CSDN博客_hub spokehttps…

Flume第二章:企业案例

系列文章目录 Flume第一章&#xff1a;环境安装 Flume第二章&#xff1a;企业案例 文章目录系列文章目录前言一、复制和多路复用1.案例需求2.案例实现3.结果查看二、负载均衡和故障转移1.需求案例2.案例实现3.结果查看三、聚合1.案例需求2.案例实现3.查看结果总结前言 这次我…

用python写的代码输入助手小程序(附源码)

命令太多&#xff0c;很容易忘记&#xff0c;还有很多代码片段想保存下来用到的时候能够快速输入&#xff0c;提高开发效率。在网上找了很多&#xff0c;发现都不是自己想要的。于是就用python写了一个自己用的代码输入助手小程序&#xff0c;我自己已经用了很长时间了&#xf…

工业中常用流量计及其测量原理

一、流量计单位 工程上常用单位m3/h&#xff0c;它可分为瞬时流量&#xff08;Flow Rate&#xff09;和累计流量&#xff08;Total Flow&#xff09;&#xff0c;瞬时流量即单位时间内过封闭管道或明渠有效截面的量&#xff0c;流过的物质可以是气体、液体、固体&#xff1b;累…

Introduction to Multi-Armed Bandits——02 Stochastic Bandits

Introduction to Multi-Armed Bandits——02 Stochastic Bandits 参考资料 Slivkins A. Introduction to multi-armed bandits[J]. Foundations and Trends in Machine Learning, 2019, 12(1-2): 1-286. 在线学习(MAB)与强化学习(RL)[2]&#xff1a;IID Bandit的一些算法 B…

化繁为简、性能提升 -- 在WPF程序中,使用Freetype库心得

本人使用WPF开发了一款OFD阅读器&#xff0c;显示字体是阅读器中最重要的功能。处理字体显示有多种方案&#xff0c;几易其稿&#xff0c;最终选用Freetype方案。本文对WPF中如何使用Freetype做简单描述。 OFD中有两种字体&#xff1a;嵌入字体和非嵌入字体。1&#xff09; 非…

【vue2】vue生命周期的理解

&#x1f973;博 主&#xff1a;初映CY的前说(前端领域) &#x1f31e;个人信条&#xff1a;想要变成得到&#xff0c;中间还有做到&#xff01; &#x1f918;本文核心&#xff1a;vue生命周期的介绍、vue生命周期钩子函数详解&#xff0c;vue生命周期的执行顺序 目录 …