国防科技大学第二十二届“银河之光”计算机文化节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

相关文章

认识、理解、分类——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关系表达式 用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符

LeetCode 第414场周赛个人题解

目录 Q1. 将日期转换为二进制表示 原题链接 思路分析 AC代码 Q2. 范围内整数的最大得分 原题链接 思路分析 AC代码 Q3. 到达数组末尾的最大得分 原题链接 思路分析 AC代码 Q4. 吃掉所有兵需要的最多移动次数 原题链接 思路分析 AC代码 Q1. 将日期转换为二进制表示 原题链接 Q1. 将日期转换为二进制表示 思路分析