- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
出于好奇,我查看了 2009 年 ACM 国际大学生程序设计竞赛的问题集。这些问题很有趣。它们可在 http://cm.baylor.edu/resources/pdf/2009Problems.pdf 获得.我无法想出解决问题 1 的算法,我将在此处重现。它在办公室引发了热烈的讨论,我们认为我们非常接近答案,但如果有人能找到/制定出完整的解决方案(不需要代码),我们将不胜感激。
为了您的方便,我将在这里重现问题:
考虑安排降落在机场的飞机的任务。进来的飞机报告它们的位置、方向和速度,然后管制员必须制定一个着陆计划,使所有飞机安全着陆。一般来说,连续着陆之间的时间越长,着陆计划就越“安全”。这段额外的时间让飞行员有机会对不断变化的天气和其他意外情况使用react。幸运的是,这个调度任务的一部分可以自动化——这就是你进来的地方。你将获得飞机着陆的情景。每架飞机都有一个时间窗口,在此期间它可以安全着陆。您必须计算一个指令,让所有飞机在这些时间窗内着陆。此外,飞机着陆应尽可能延长,以便连续着陆之间的最小时间间隔尽可能大。例如,如果三架飞机分别在上午 10:00、10:05 和 10:15 降落,则最小间隔为五分钟,出现在前两架飞机之间。并非所有间隙都必须相同,但最小间隙应尽可能大。
输入文件包含几个测试用例,其中包含着陆场景的描述。每个测试用例都以包含单个整数 n(2 ≤ n ≤ 8)的行开头,这是场景中的飞机数量。接下来是 n 行,每行包含两个整数 ai, bi,它给出闭区间 [ai, bi] 的开始和结束,在此期间i飞机可以安全降落。数字 ai 和 bi 以分钟为单位指定并满足 0 ≤ a i ≤ bi ≤ 1440。输入以包含单个整数零的行终止。
对于输入中的每个测试用例,打印其用例编号(从 1 开始),然后是连续着陆之间可实现的最小时间间隔。打印分为分钟和秒的时间,四舍五入到最接近的秒。遵循示例输出的格式。
示例输入
3
0 10
5 15
10 15
2
0 10
10 20
0
示例输出
Case 1: 7:30
Case 2: 20:00
最佳答案
我将给出算法的草图。
首先是你binary search通过答案(航类之间的最小间隔)。为此,对于每个选定的间隔 T,您必须能够检查是否有可能实现它。如果有可能实现T,那么你就试着把它变小,如果不行 - 让它变大。
要检查您是否可以达到 T,请尝试所有 n!飞机可能着陆的顺序(8!足够小,可以让这个算法及时工作)。对于每个排列 P1...Pn,您尝试在 greedy manner 中分配时间:
int land = a[0];
for (int i = 1; i < n; i++) {
land = max(a[i], land + **T**);
if (land > b[i]) return "CAN NOT ACHIEVE INTERVAL T";
}
return "CAN ACHIEVE";
关于algorithm - 2009 年 ACM-ICPC 世界总决赛的飞机调度挑战,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1842587/
我正在尝试编译以下代码: #include int main() { std::map test; return 0; } 使用以下命令: icpc -I /usr/include/x86_
我正在尝试用 C++ 编译一段代码,它使用了过度对齐的变量。如果我尝试编译以下代码(MWE) #include #include int main() { alignas(32) doub
我在练ACM ICPC 历代题http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_proble
昨天我们在PC上进行了练习^2,它是比赛的官方裁判软件,但我遇到了问题,我的问题代码是正确的,答案也是正确的,但当我将其发送到软件时它回答我“运行时错误”。 我认为我的问题在输入文件中,他们想要来自输
一个相当基本的问题,但我在这里有点迷路。我正在开发一个处理复数的库。到目前为止,我在 Mac OS 10.8 和 Ubuntu 10.04 下使用了我的实现(通过在 Man 上使用 llvm-gcc,
我正在尝试编译#includes 库的代码 在代码中我有以下几行: int main() { clock_t begin = clock(); random_device rd;
我有以下测试代码: // friendfunction.h
我在 Linux 上安装了英特尔编译器 composer_xe_2013_sp1.3.174。我对 icc 警告感到困惑。用一个简单的程序 main.c 喂 icc,如下所示: int main(in
我在以下 $HOME/tpl/intel 安装了 intel 编译器。当我编译启用了 openMP 的简单 hello_omp.cpp #include #include int main ()
我在我的大学领导一小群开发人员,我想解决前几年的几个 ICPC 问题集。 在 Google 上搜索不会产生有用的结果,只会出现一页页的损坏链接和私有(private) .edu 域。 有谁知道在哪里可
我正在尝试使用具有 c++11 功能的 icpc,但是我需要一个 c++11 stdlib,intel 没有提供。 我在 RHEL 6 上以用户身份运行,因此系统 libstdc++ 已过时。安装了较
有许多在线判断网站可以通过将其输出与正确答案进行比较来验证您的程序。此外,他们还会检查运行时间和内存使用情况,以确保您的程序没有超过最大限制。 那么问题来了,有些在线评委网站同时运行多个测试程序,他们
出于好奇,我查看了 2009 年 ACM 国际大学生程序设计竞赛的问题集。这些问题很有趣。它们可在 http://cm.baylor.edu/resources/pdf/2009Problems.pd
我已经坐了将近一个星期了。 Here是 PDF 格式的问题。 到目前为止我只能想到一个想法,但它失败了。这个想法是递归地创建所有在 O(num_of_connected_subgraphs) 中工作的
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我使用的是 Ubuntu 14.04 & eclipse & intel 编译器 v 15 我有 2 个相同的程序(使用 cilk 命令)(一个作为 c 程序,另一个作为 cpp 程序)。 我可以用
玩具代码非常简单: #include #include #define A 10 #define SIZE (int)(ceil(A / 2)) // needs computation but
这个问题是 ACM ICPC 坎普尔地区淘汰赛中提出的问题的子问题: 给定由二维点界定的 2 条线段 (Pa, Pb)和 (Pc, Pd)分别找到p和 q (在 [0,1] 范围内)最小化函数 f(p
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 2 年前。 Improve this qu
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 2 年前。 Improve this qu
我是一名优秀的程序员,十分优秀!