UVa 10240 The n-Dimensional Cities

发布时间:2026/8/26 17:16:37

UVa 10240 The n-Dimensional Cities
题目描述在nnn维空间中最多可以有(n1)(n1)(n1)个点两两等距。Talisman\texttt{Talisman}Talisman国的nnn维生物建造了(n1)(n1)(n1)座城市这些城市两两等距。Talisman\texttt{Talisman}Talisman的道路按照如下规则修建111. 每一座城市都可通过道路到达其他任何城市图连通。222. 一条道路段只连接两个不同的城市。333. 两个城市之间最多只有一条直接道路段无重边。444. 任意城市的任意两个邻居之间都没有直接道路相连。若两座城市AAA和BBB之间有直接道路段则称它们为邻居。若AAA的两个邻居是BBB和CCC则BBB和CCC永远不会是邻居。该条件等价于图中不存在三角形。555. 连接两个相邻城市的道路段要么是直线要么是圆弧。圆弧道路段实际是一个圆的一部分该圆的圆心到两座城市的距离均为ddd英里。这里满足d≥0.5×d \ge 0.5 \timesd≥0.5×两城市的直线距离。Talisman\texttt{Talisman}Talisman中最多50%50\%50%的道路为圆弧且圆弧道路的数量永远不会超过直线道路的数量。666. 可假设任意两条道路段不相交。通信部长希望修建尽可能多的道路段在满足所有约束的前提下自然部长希望道路的总长度尽可能长他在道路两侧种树。给定Talisman\texttt{Talisman}Talisman的描述你需要求出道路段的数量以及道路的总长度。输入格式输入文件包含若干行每行有三个整数dim世界维度正整数小于100001000010000dist任意两城市间的直线距离0dist≤100000 dist \le 100000dist≤10000d圆心到城市的距离dist2.0≤d10000\frac{dist}{2.0} \le d 100002.0dist​≤d10000。输入以EOF\texttt{EOF}EOF结束。输出格式对于每一行输入输出一行包含两个整数四舍五入第一个数道路段的最大数量第二个数最大总长度实际总长度四舍五入到最接近的整数。样例输入2 10 10 3 5 6输出2 20 4 20题目分析1. 城市数量与图模型城市数为Vdim1V dim 1Vdim1。城市之间的道路关系构成一个简单无向图顶点代表城市边代表道路段。约束条件444要求任意两个邻居之间没有边即图中不存在三角形triangle-free\texttt{triangle-free}triangle-free。同时图必须连通规则111。由于没有重边且无自环该图为简单图。2. 最大道路段数对于VVV个顶点的无三角形图其最大边数由极值图论中的Turaˊn\texttt{Turán}Turaˊn定理给出emax⁡⌊V24⌋ e_{\max} \left\lfloor \frac{V^2}{4} \right\rflooremax​⌊4V2​⌋该上界由完全二分图K⌊V/2⌋,⌈V/2⌉K_{\lfloor V/2 \rfloor, \lceil V/2 \rceil}K⌊V/2⌋,⌈V/2⌉​达到该图显然无三角形且连通。因此道路段的最大数量固定为E⌊(dim1)24⌋ E \left\lfloor \frac{(dim1)^2}{4} \right\rfloorE⌊4(dim1)2​⌋3. 使总长度最大对于每条可能的边道路段有两种修建方式直线或圆弧。直线长度固定为distdistdist。圆弧长度给定圆心到两端点距离均为ddd弦长为distdistdist。设圆弧对应的圆心角为θ\thetaθ则弦长公式dist2dsin⁡(θ/2)dist 2d \sin(\theta/2)dist2dsin(θ/2)故弧长sdθ2d⋅arcsin⁡(dist2d)s d\theta 2d \cdot \arcsin\left(\frac{dist}{2d}\right)sdθ2d⋅arcsin(2ddist​)。由于d≥dist2d \ge \frac{dist}{2}d≥2dist​可知arcsin⁡\arcsinarcsin的参数在[0,1][0,1][0,1]内且圆弧长度s≥dists \ge dists≥dist当d→∞d \to \inftyd→∞时s→dists \to dists→dist但始终不小于直线长度。因此自然部长希望尽量多用圆弧以增加总长度。但约束5限制圆弧道路数不超过总边数的50%50\%50%即C≤⌊E/2⌋C \le \lfloor E/2 \rfloorC≤⌊E/2⌋圆弧道路数不超过直线道路数即C≤SC \le SC≤S其中SE−CS E - CSE−C。这两个条件合并等价于C≤⌊E/2⌋C \le \lfloor E/2 \rfloorC≤⌊E/2⌋因为SE−C≥E−⌊E/2⌋⌈E/2⌉≥CS E-C \ge E - \lfloor E/2 \rfloor \lceil E/2 \rceil \ge CSE−C≥E−⌊E/2⌋⌈E/2⌉≥C故最大可行圆弧数为C⌊E/2⌋C \lfloor E/2 \rfloorC⌊E/2⌋。于是最优方案为选择CCC条边修成圆弧其余SE−CS E - CSE−C条修成直线总长度达到最大值LS⋅distC⋅s L S \cdot dist C \cdot sLS⋅distC⋅s4. 四舍五入最后将LLL四舍五入到最接近的整数。由于所有长度均为正可使用floor(L 0.5)实现四舍五入。解题思路读取输入逐行读取三个整数dim、dist、d直到文件结束。计算顶点数Vdim1V dim 1Vdim1。计算最大边数E⌊V2/4⌋E \lfloor V^2 / 4 \rfloorE⌊V2/4⌋使用整数除法(V * V) / 4即可C 整数除法自动向下取整。计算圆弧长度使用双精度浮点数s2.0×d×arcsin⁡(dist2.0×d) s 2.0 \times d \times \arcsin\left(\frac{dist}{2.0 \times d}\right)s2.0×d×arcsin(2.0×ddist​)注意参数范围合法且使用asin函数来自cmath。计算最优分配圆弧边数CE/2C E / 2CE/2整数除法向下取整直线边数SE−CS E - CSE−C。计算总长度LS×distC×s L S \times dist C \times sLS×distC×s四舍五入rounded (long long)floor(L 0.5)。输出每行输出E和rounded。复杂度分析每个测试用例仅需常数次算术运算和一次三角函数计算时间复杂度为O(1)O(1)O(1)。空间复杂度为O(1)O(1)O(1)。代码实现// The n-Dimensional Cities// UVa ID: 10240// Verdict: Accepted// Submission Date: 2026-06-20// UVa Run Time: 0.000s//// 版权所有C2026邱秋。metaphysis # yeah dot net#includebits/stdc.husingnamespacestd;intmain(){intdim,dist,d;while(cindimdistd){longlongVdim1;longlongedges(V*V)/4;// 最大边数整数除法向下取整doubleratiodist/(2.0*d);// 弦长与直径之比doublearcLen2.0*d*asin(ratio);// 单条圆弧长度longlongcircularEdgesedges/2;// 最多圆弧数longlongstraightEdgesedges-circularEdges;// 剩余为直线doubletotalLenstraightEdges*distcircularEdges*arcLen;longlongroundedLen(longlong)floor(totalLen0.5);coutedges roundedLen\n;}return0;}总结本题的关键在于将实际问题转化为图论模型并利用Turaˊn\texttt{Turán}Turaˊn直接得出最大边数避免了繁琐的组合枚举。同时圆弧长度的计算只需一次反三角函数分配策略则通过简单的整除得出最优解。该题体现了数学定理在算法设计中的强大作用同时也考察了对浮点数四舍五入的处理技巧。

相关新闻

HarmonyOS 7.0 / API 26 平板分屏尺寸抖动:拖动分屏线时页面为什么不要反复重建

HarmonyOS 7.0 / API 26 平板分屏尺寸抖动:拖动分屏线时页面为什么不要反复重建

2026/8/26 17:16:37

HarmonyOS 7.0 / API 26 平板分屏尺寸抖动:拖动分屏线时页面为什么不要反复重建 这篇只拆一个具体点:平板分屏尺寸抖动。版本边界先放前面:下面的写法面向 HarmonyOS 7.0 / API 26。工程里如果还在混用旧 SDK、旧模拟器镜像或旧设备系统&…

新手友好!50 行代码封装 DeepSeek API,快速搭建 AI 对话网页

新手友好!50 行代码封装 DeepSeek API,快速搭建 AI 对话网页

2026/8/26 17:16:37

新手友好!50 行代码封装 DeepSeek API,快速搭建 AI 对话网页 新手友好!50 行代码封装 DeepSeek API,快速搭建 AI 对话网页一、最终效果二、为什么不用复杂框架?三、准备工作四、50 行核心代码:封装 DeepSee…

低代码无代码编程.pptx

低代码无代码编程.pptx

2026/8/26 17:16:37

低代码无代码编程低代码/无代码平台的定义和特点低代码/无代码开发优势和劣势低代码/无代码技术的当前现状和应用低代码/无代码应用的适用行业和场景低代码/无代码的未来发展趋势和展望低代码/无代码与传统编码方式的比较低代码/无代码技术对软件开发的影响低代码/无代码技术的…

2026 年 AI Agent 框架横评:10 大框架优缺点对比 + 选型指南

2026 年 AI Agent 框架横评:10 大框架优缺点对比 + 选型指南

2026/8/26 18:26:40

本文由 GO FUNNY 出品。专注 AI Agent 协作方法论与开源工具深度解读。你想搭一个 AI agent,打开 GitHub 搜「agent framework」,按 star 排序,点进第一名,照着 quickstart 敲完,跑通了一个 demo——觉得这事稳了。然后…

信奥梯队选拔面试中如何评估学员的抗挫能力

信奥梯队选拔面试中如何评估学员的抗挫能力

2026/8/26 18:26:40

信奥梯队选拔面试中评估学员抗挫能力,核心是通过可控的“轻度受挫场景”,观察学员面对解题卡壳、思路错误时的真实反应,筛选出能适配信奥长期刷题、反复调试、赛事高压场景的优质苗子。 一、分层设计抗挫能力测试场景 1、‌预备梯队&#x…

★★★ 完全自动化!个人工作日志统计/效率分析工具 —— 时间都去哪了(TimeWhere)

★★★ 完全自动化!个人工作日志统计/效率分析工具 —— 时间都去哪了(TimeWhere)

2026/8/26 18:26:40

你是否也经历过这样的场景? 周五下午被要求交周报,你盯着屏幕发呆——这周到底干了什么?年终写总结,翻遍聊天记录和邮件,却凑不出一份像样的工作总结;每天下班时感觉"挺忙的",回头一…

第13章 同人•同道 与扎尔的告别

第13章 同人•同道 与扎尔的告别

2026/8/26 18:26:40

六月的波士顿已经是初夏了。查尔斯河两岸的树全绿了,浓密的树冠在水面上投下一大片碎影,风一吹就碎成无数个移动的小块。悦儿站在洛根机场的出发大厅里,面前是扎尔拖着两个行李箱的背影。他的帆布包换了一个新的——旧的那个磨了太久&#xf…

氩弧焊量产工况可以使用节气装置吗?

氩弧焊量产工况可以使用节气装置吗?

2026/8/26 18:26:40

一、前言在MIG、TIG、MAG等主流氩弧焊量产工况中,氩气作为核心保护气体,直接决定焊缝成型质量与良品率。目前绝大多数焊接产线,无论人工工位还是自动化机器人工位,普遍采用固定流量恒压供气模式。这种传统供气方式技术门槛低、调试…

零基础入门python22:注册接口与密码哈希——为什么不能保存明文密码

零基础入门python22:注册接口与密码哈希——为什么不能保存明文密码

2026/8/26 18:16:40

零基础入门python22:注册接口与密码哈希——为什么不能保存明文密码一、上一篇课后练习讲解 给账目增加日期时使用 date 类型,并让数据库列建立索引;测试应创建两天数据,查询某一天只返回对应记录。日期过滤要使用范围或等值比较&…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/26 1:50:39

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/26 1:49:16

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/26 17:50:58

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

Python random 模块常用函数详解:从入门到实战

Python random 模块常用函数详解:从入门到实战

2026/8/26 0:05:45

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要: 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数(random()、unifor…

Hermes接入团队协作后,我推翻了三个效率假设

Hermes接入团队协作后,我推翻了三个效率假设

2026/8/26 0:05:45

聊《Hermes真能提效吗?先看流程里最慢的那一步》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要团队把 Hermes 接进项目三个月后,交付速度没有提升反而慢了。复盘后发现,最先…

免费AI大模型调教指南:打造专属网文写作助手

免费AI大模型调教指南:打造专属网文写作助手

2026/8/26 0:05:45

1. 先搞清楚“AI小说扩展模式”到底能帮你做什么如果你是一个刚开始写网文、或者卡在L3级别以下的作者,最头疼的可能是情节推进不下去、人物对话干瘪,或者世界观设定不够丰满。自己对着空白文档硬憋,效率很低。这时候,一个能理解你…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/26 18:07:30

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/26 17:57:52

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…