- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试解决这个问题:http://acm.tju.edu.cn/toj/showp2886.html
我已经尝试了一些解决方案,我将解释其中的两个。请注意,两者都假设成本(位置)是一个凸函数,这意味着它向中间减少(实际上它在某个地方朝向中位数(供应点)),并且该图看起来或多或少像一个 U 形。
找到成本(位置)<= M 的最左边和最右边的供应点位置。找到最小值和最大值后,我尝试看看是否可以使间隔大一点(因为餐厅没有'必须准确地放置在供应点上)。这是一个很好的解决方案,但需要非常多的时间来计算最后一位。它在 M 非常大且几乎没有最低成本的供应点的测试中失败。复杂度:O(NlogN) + O(M)。下面的解决方案超出了时间限制,但我尝试了另一个解决方案,我在 O(1) 中计算我可以在两个方向上走多少,但我得到了错误的答案。
由于函数是凸函数,我可以使用三元搜索来找到最小值。如果最小值小于 M,我将对函数的下限和上限(即 M)进行二分查找。复杂度:O(NlogM),因为对于每个 O(logM),我计算 O(N) 的成本。
这是我尝试过的方法,但我仍然得到“错误答案”,所以我需要一些帮助,因为这让我抓狂。
这个问题在规范中并不是很清楚(或者至少我是这么认为的),因为当我第一次阅读它时,我不认为成本是根据所有供应点计算的,而只是从最近的供应点计算的。该示例清除了这一点。另外,我不知道我对成本(位置)函数是凸函数的假设是否真的正确。但我已经尝试了很多例子,似乎是这样。
谢谢。任何帮助表示赞赏。 :D
最佳答案
列表中两个连续供应商位置之间的最小目标值必须出现在两个供应商位置之一。要看到这一点,请考虑两个供应商位置,中间没有供应商位置,它们的位置相差超过 1。假设左侧供应商位置给出的目标值小于或等于右侧供应商位置。然后,每次您从左侧供应商位置向右移动 1 步时,目标函数都会上升(微弱地,它可能会保持不变),因为目标函数的变化量与您向右移动 1 步时的变化量相同两个连续供应商位置之间的时间。因此,您唯一需要计算的是有多少供应商位置提供相同的全局最小值。这些将出现在连续的段中(供应商位置给出的端点),并且每个段的端点之间的所有位置也将给出相同的全局最小值。
请注意,根据我的分析,有可能有两个非连续的片段给出相同的全局最小目标值。如果是这样,那么您的函数可能不是凸函数,这可能是您当前尝试中遇到困难的根源。
通过从左到右处理,可以在 O(N) 时间内为 N 个供应商计算每个供应商位置的目标值。
关于algorithm - 解决 ACM TJU 2886 - 餐厅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29645446/
完整的错误消息是: 403 urn:acme:error:unauthorized: Account creation on ACMEv1 isdisabled. Please upgrade you
我们正在使用 EKS 和 Nginx-ingress(NLB)。我正在尝试在 NLB 的 AWS-load-balancer-SSL-cert 注释中配置多个 AWS ACM 证书。但没有运气。如果可
acme DNSapi acme DNSapi的作用是在申请证书时使用dns交易,acme可以通过dnsapi在对应的dns管理平台提交对应的dns记录。玩过证书的朋友都知道,证书申请时有三种验证方
我的应用程序运行在EKS上,该服务器正在使用istio-ingressgateway服务为端口15020、15032、15031、15029、15030、15443的负载均衡器。我想在此ELB上终止S
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
下面是我从链接 http://progspedia.blogspot.com/2011/05/679-dropping-balls.html#comment-form 复制的代码 #include i
我正在尝试使用 Swing 和 ACM 交互器制作一个非常简单的程序。它直接取自类讲义,但在我的电脑上不起作用。当我运行它时,它可以正常运行大约半秒钟,然后短暂闪烁、重新加载,然后所有按钮和文本字段功
我正在尝试使用 Swing 和 ACM 交互器制作一个非常简单的程序。它直接取自类讲义,但在我的电脑上不起作用。当我运行它时,它可以正常运行大约半秒钟,然后短暂闪烁、重新加载,然后所有按钮和文本字段功
我是Java新手!!! :) 现在,我只是对 ACM 库的对象及其函数感到困惑。我想创建一个颜色为绿色的 GRect。所以我可能会这样做: GRect rect = new GRect(0, 0, 5
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: Can you answer this 2009 ACM International Collegiate Prog
我被选中参加 ACM ICPC 区域决赛。但是我只剩下 1 周的准备时间了。我已经为此准备了 1 年,但由于我的考试,我在过去两周不能花太多时间在编程上。 有人可以发布一些链接吗,我可以在其中找到涵盖
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我正在尝试找出如何解决 ACM ICPC final 之一的问题(从 2012 年开始,所以我猜是最近的)。它称为 Fibonacci Words,描述为 here在问题 D 下。 我认为我非常接近,
我正在尝试在 Eclipse 中编写一个 java 应用程序。 我真的很想使用 ACM.Program 包,但是,我的 Eclipse 副本没有安装它! 我在网上找遍了,找不到一个 ACM 包的下载。
在使用 vi 15 年的大部分时间后,我在使用 Go 时一时兴起尝试了 Rob Pike 的 Acme。我真的很喜欢它的小巧轻便。现代 unix 风格的东西在 Acme 中表现不佳,而 Ruby 开发
您好! 我在查找出现此错误的原因时遇到了问题。尝试用谷歌搜索它。这似乎是从容器中查找 dns 的问题。 traefik 日志错误: time="2020-01-30T12:12:12+01:00" l
import java.io.*; import java.util.*; public class Main { public static void main(String[] args) thr
我目前正在将我的硕士论文放入 latex ACM 模板中,我有一个大表,我希望其中不同的行具有不同的颜色。现在我知道这通常是使用以下方法完成的: \rowcolor{Yellow} 现在我使用 ACM
我是这个网站的新手,对 Java 也比较陌生。 我创建了一个 Java 应用程序,它使用 ACM 图形包并扩展了 GraphicsProgram 。我现在希望能够将图形输出窗口的内容转换为图像文件,例
我目前正在阅读 Eric Robert 的Java 艺术与科学,其中使用了 ACM Java 库。其中一项练习要求学生构建 Breakout 的克隆版本。我对对象的动画有疑问,所以请看一下这段代码,如
我是一名优秀的程序员,十分优秀!