SS241112A. 定向越野(walk)

news/2024/11/14 20:56:03/文章来源:https://www.cnblogs.com/liyixin0514/p/18542596

SS241112A. 定向越野(walk)

题意

给你 \(n\) 个点,\(n \le 12\),你可以从任意一个点出发以任意顺序依次遍历所有点燃火回到起点,你只能拐直角走,问最小路程。答案输出最小路程的平方,输出分数形式。可以证明最小路程的平方一定是有理数。

思路

显然枚举遍历顺序。

首先需要明白为什么答案一定是有理数。

感觉我们的初始方向必须是某一个向量的方向,假设这个是正确的。

考虑起点初始方向是 \(\alpha\),我们可以把整个图旋转 \(\alpha\),这样相当于我们只能往坐标轴方向走。

考虑旋转后每个点的坐标,起点是 \((0,0)\),第一个经过的点是 \((len_{0,1},0)\)(其中 \(len_{u,v}\) 表示点 \(u\) 和点 \(v\) 的直线距离)。每个点与原点连线,相当于这条线的角度减去 \(\alpha\)。设这条线的角度是 \(\beta\)\(\alpha\)\(\beta\)\(\tan\) 都是有理数,已知。那么就可以求出 \(\beta-\alpha\)\(\tan\) 了,也是有理数。

不记得三角函数公式……

\[\sin (\beta-\alpha)=\sin \beta \cos \alpha - \cos \beta \sin \alpha\\ \cos (\beta-\alpha)=\sin \beta \cos \alpha + \cos \beta \sin \alpha\\ \tan (\beta-\alpha)=\frac{\tan \beta - \tan \alpha}{1- \tan \beta \tan \alpha} \]

我们要证明答案只含一种无理数,否则如果是多个无理数相加,平方后仍然是无理数。

也就是证明答案仅含有 \(len(1,2)\) 一种或零种无理数。

\(u\) 的坐标 \(x_u=\cos x \cdot len_{1,u},y_u=\sin x \cdot len(1,u)\),展开后因为 \(\sin x,\cos x\) 分母里本身有一个 \(len_{1,u}\),因此就消掉了 \(len_{1,u}\),只剩下一个有理数乘(其实是除啦) \(len(1,2)\) 了。

证毕。

回到最初的假设,事实上这个结论是正确的。我不会证明。想象一个等腰直角三角形,最优的路径是以底边为初始方向,你发现虽然你微调初始方向后上边底边的路变长,上面的路变短,但是这是不优的。因此大胆猜测结论正确?

关键是如果没有这个结论,你没法做啊。所以结论是对的。。。

题解写得挺好。

在计算器上画出 \(y=\sin x + \cos x\) 函数图像。

长这样。其实应该是 \(y=\sin x + \cos x\)

这是个分段的凸函数,当 \(x=0\) 的时候取得最小值。所以它们加起来的最小值一定是在某个 \(x=0\) 的位置取到,因为如果你取其他位置,一定可以选择旁边的位置使答案更小。

我觉得很难理解。容易想错。只是给出结论再去证明是相对好感性理解的。

嗯没了。

直接枚举遍历顺序是阶乘的,可以状压 DP,状态是初始方向,哪些点已经经过,最后一个点是什么,其中初始方向可以循环数组,时间 \(O(n^3 2^n)\),空间 \(O(n 2^n)\),转移枚举下一个点,总时间是 \(O(n^4 2^n)\)

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

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

相关文章

第六课 Python之模块

一、模块的介绍 (1)python模块,是一个python文件,以一个.py文件,包含了python对象定义和pyhton语句 (2)python对象定义和python语句 (3)模块让你能够有逻辑地组织你的python代码段。 (4)把相关的代码分配到一个模块里能让你的代码更好用,更易懂 (5)模块能定义函数…

redis集群搭建 - cluster模式

搭建一套redis cluster集群。概述 搭建一套redis cluster集群。架构 192.168.0.21:6379 主 192.168.0.23:6380 从 192.168.0.22:6379 主 192.168.0.21:6380 从 192.168.0.23:6379 主 192.168.0.22:6380 从 修改这三台服务器的host文件(选做) vim /etc/hosts192.168.0.21 node…

推荐一个Elasticsearch ES可视化客户端工具:ES-King

ES-King:开源免费,一个现代、实用的ES GUI客户端,支持多平台。 下载地址:https://github.com/Bronya0/ES-King 功能清单 详尽的集群信息:节点信息、堆内存占用、总内存占用、cpu占用、磁盘占用、网络流量、节点角色、集群健康、5分钟负载、每个节点的字段缓存、段缓存、查…

Kafka怎么配置SASL用户名密码认证

服务端配置(server.properties):# 开启SASL认证 security.protocol=SASL_PLAINTEXT sasl.mechanism=PLAIN# 配置JAAS文件路径 listeners=SASL_PLAINTEXT://localhost:9092 sasl.enabled.mechanisms=PLAIN listener.name.sasl_plaintext.plain.sasl.jaas.config=org.apache.kafk…

数据采集与融合技术第四次实践作业

gitee链接: https://gitee.com/zxbaixuexi/2024scrapy/tree/master/第四次实践 作业①: 1) 使用 Selenium 框架+ MySQL 数据库存储技术路线爬取“沪深 A 股”、“上证 A 股”、“深证 A 股”3 个板块的股票数据信息。 候选网站:东方财富网: http://quote.eastmoney.com/cen…

项目冲刺11.12

这个作业属于哪个课程 计科22级34班这个作业要求在哪里 作业要求这个作业的目标 进行为期七天的项目冲刺并记录前言 本篇博客是项目冲刺的第四篇,七篇博客的汇总如下:博客汇总第一篇博客第二篇博客第三篇博客第四篇博客第五篇博客第六篇博客第七篇博客团队简介队名 拖延是你不…

快速修改kafka的broker配置或topic配置

下载开源的kafka界面客户端KafkaKing:https://github.com/Bronya0/Kafka-King 连接后,双击broker配置,或者双击topic配置:修改好后回车保存就行。有些配置是改不了的。

mysql创建表

创建表 创建表要先选中数据库名 create table 表名(列名 类型)来进行创建,列名可以存在多个,表名和列名不可以一样,想要一样的话就要使用反引号把表名和列名引起来 列名在前面,类型在后面查看所有表 show tables查看当前数据库所有表查看指定表的结构 desc 表名;把表的特…

《会计原来这么有趣》——中级实务篇(刘海涛)

第一章:存货核算 1.1存货定义:存货是指企业在日常活动中持有以备出售的产成品或商品、处在生产过程中的在产品、在生产过程或提供劳务过程中耗用的材料或物料等,包括各类材料、在产品、半成品、产成品或库存商品以及包装物、低值易耗品、委托加工物资等。 参考(https://bai…

实验15:职责链模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解职责链模式的动机,掌握该模式的结构; 2、能够利用职责链模式解决实际问题。[实验任务一]:财务审批 某物资管理系统中物资采购需要分级审批,主任可以审批1万元及以下的采购单,部门经理可以审批5万元及以…

题解:[JOISC 2021 Day4] イベント巡り 2 (Event Hopping 2)

P7562 [JOISC 2021 Day4] イベント巡り 2 (Event Hopping 2) lxl 上课讲了这题,我听了选取答案区间的思路,恍然大雾 ,于是就有了这篇题解—— sto lxl orz !!!本题解主要详解区间选取。 前置知识:倍增策略 首先,本题的 \(L_i\)、\(R_i\) 较大,离散化即可。 另外,我个…