国防科技大学第二十二届“银河之光”计算机文化节ACM程序设计大赛 简要题解

本文主要是介绍国防科技大学第二十二届“银河之光”计算机文化节ACM程序设计大赛 简要题解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

补题地址:https://ac.nowcoder.com/acm/contest/878#question

 

A

首先暴力搜索找到距离每个人最近的出口是哪个。然后,对每个出口建立优先队列,把每个人放到他应该走的出口的队列即可。

B

显然人的强壮程度没有意义。考虑最小费用流。每个出口按照时刻拆成多个点,表示哪个时刻出来。同一个出口第i时刻向i+1时刻连边,流量无穷费用1。每个人向每个出口连边,流量为1,费用为曼哈顿距离。源点连接所有人,汇点连接所有出口。跑费用流即可。

C

如果gcd(a,b)不能整除c,那么显然不行。分析一下,你会发现,ax+by=c,最小化|x|+|y|就是答案。

 

     

 

D

每个节点有唯一后继,起点确定后字符串是确定的。只需要预先求出每个节点的2^k后继,就能套用后缀数组的倍增法进行排序。

E

背包dp。dp[i]表示总伤害达到i的最小代价。有转移方程dp[i]=min(dp[i],dp[i-w[j]*(1-(1-r[j])^k)]+c[j]*k),表示用第j个导弹打k次。由于是四舍五入取整,且r[i]最小0.5,w[i]最大100,因此k最大不超过10,复杂度过得去。

F

二分单调优化维护上凸壳即可。

G

学长出的题,没想到是翻译题,BZOJ 2007... 显然要把图分成两个部分,只有中间分界线需要有代价。相当于求最小割。由于是平面图,数据很大,平面图最小割转最短路即可。

H

计算几何。判断圈与圈的包含关系即可。

I

为什么大家不用floyd。floyd,对于任意给定两点(i,j),枚举第三点,看f[i][j]是否等于f[i][k]+f[k][j],等于那么说明k符合条件。

J

签到题

K

首先确定环上的点,然后树剖一下,用树状数组维护他们直接连接的颜色,颜色的话1000个用bitset维护。对于其他点,用另一个树状数组维护这个点到最近的环上的点的颜色。每次询问用LCA,分在环上和不在环上讨论。树状数组区间查询。

 

 

具体的话,欢迎讨论。

 

这篇关于国防科技大学第二十二届“银河之光”计算机文化节ACM程序设计大赛 简要题解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/638336

相关文章

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

C - Word Ladder题解

C - Word Ladder 题解 解题思路: 先输入两个字符串S 和t 然后在S和T中寻找有多少个字符不同的个数(也就是需要变换多少次) 开始替换时: tips: 字符串下标以0开始 我们定义两个变量a和b,用于记录当前遍历到的字符 首先是判断:如果这时a已经==b了,那么就跳过,不用管; 如果a大于b的话:那么我们就让s中的第i项替换成b,接着就直接输出S就行了。 这样

计算机视觉工程师所需的基本技能

一、编程技能 熟练掌握编程语言 Python:在计算机视觉领域广泛应用,有丰富的库如 OpenCV、TensorFlow、PyTorch 等,方便进行算法实现和模型开发。 C++:运行效率高,适用于对性能要求严格的计算机视觉应用。 数据结构与算法 掌握常见的数据结构(如数组、链表、栈、队列、树、图等)和算法(如排序、搜索、动态规划等),能够优化代码性能,提高算法效率。 二、数学基础

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

【秋招笔试】9.07米哈游秋招改编题-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收集 100+ 套笔试题,笔试真题 会在第一时间跟新 🍄 题面描述等均已改编,如果和你笔试题看到的题面描述

C语言程序设计(选择结构程序设计)

一、关系运算符和关系表达式 1.1关系运算符及其优先次序 ①<(小于) ②<=(小于或等于) ③>(大于) ④>=(大于或等于 ) ⑤==(等于) ⑥!=(不等于) 说明: 前4个优先级相同,后2个优先级相同,关系运算符的优先级低于算术运算符,关系运算符的优先级高于赋值运算符 1.2关系表达式 用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符