- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
Code jam problem是以下内容:
给你一个完整的无向图,有 N 个节点和 K 个“禁止”边。 N <= 300, K <= 15。找出图中不使用任何 K 个“禁止”边的哈密顿循环数。
不幸的是,堆栈上和整个网络上对此的解释都非常不足。我可以计算出某个“n”的 HamCycles:(n-1)!/2 .
我可以用动态规划来做短集。
但是我没有得到所有的博洛尼亚子集,如何让它成为 O^K?我在 Python 中,还没有破译可用的 C++。最终我确定我会花时间学习 C++,然后我会破译它。但与此同时,为什么有人不能在网络上的某个地方更好地解释这一点?它们总是半解释。
最佳答案
如果您指出缺少的解释可能会有所帮助,但无论如何我都会尝试...
基于 O(2k) 的解决方案使用 inclusion-exclusion principle .假设有 k 个禁止边,则有 2k 个子集边,包括集合本身和空集。例如,如果有 3 个禁止边:{A, B, C},则将有 23=8 个子集:{}, {A}, {B}, {C}, { A,B}, {A,C}, {B,C}, {A,B,C}。
对于每个子集,您计算至少包含该子集中所有边的循环数。如果包含边s的循环数是f(s)和S 是所有禁止边的集合,则根据包含排除原理,没有任何禁止边的循环数为:
sum, for each subset s of S: f(s) * (-1)^|s|
哪里 |s|是 s 中的元素数。换句话说,具有任何边的循环数之和减去具有至少 1 个禁止边的循环数加上具有至少 2 个禁止边的循环数,。 ..
计算 f(s) 并非易事——至少我没有找到一种简单的方法。在继续阅读之前,您可能会停下来思考一下。
要计算 f(s),从不涉及任何 s 的节点的排列数开始 节点。如果有 m 个这样的节点,就有 m!排列,如你所知。将排列数称为 c。
现在检查 s 中的边缘是否有链。如果存在任何不可能的组合,例如包含 3 条边的节点或 s 内的子循环,则 f(s) 为 0。
否则,对于每个链递增 m 1 并将 c 乘以 2m。 (有 m 个地方可以将链放在现有排列中,因子 2 是因为链可以向前或向后。)最后,f(s) 是 c/(2m)。最后一个除法将排列转换为循环。
关于algorithm - GCJ - 哈密顿循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6038367/
我获得了属于空间引用 GCJ-02 的 LatLng。当然,它不会在谷歌地图中正确显示,因为我相信,如果我错了请纠正我,谷歌地图使用 WGS-84。 google map service v2 for
Code jam problem是以下内容: 给你一个完整的无向图,有 N 个节点和 K 个“禁止”边。 N <= 300, K <= 15。找出图中不使用任何 K 个“禁止”边的哈密顿循环数。 不幸
下面是一些简单的代码: class B {final static int x = C.x;} class C {final static int x = B.x;} class A { st
我正在尝试使用 gcj 构建 java 应用程序,但出现以下错误。自从我使用 gcj 以来已经有一段时间了(大约一年),所以我可能忘记了一些不明显的东西,但我很确定我一直都是这样做的。 multip
这个问题在这里已经有了答案: Is GNU's Java Compiler (GCJ) dead? [closed] (4 个答案) 关闭 7 年前。 我一直在寻找有关 GCJ 状态及其 futur
如何在 NetBeans 中使用 GCJ 编译器编译 Java 程序?有什么插件吗? 最佳答案 GCJ 是垃圾,抛弃它。除了最原始的 Java 代码,您无法使用它编译所有代码。 而且您不能将它集成到
我想将小型 Java 应用程序编译为 Windows 可执行文件。 应用程序很小,只有一个主类,但它使用 Apache POI。 当我编译它时,一切正常,只要我将 POI Jar 放入类路径参数中即可
这是我用 Java 编写的速度测试的结果: Java real 0m20.626s user 0m20.257s sys 0m0.244s GCJ real
我是 Linux 和一般编程的新手,我什至似乎无法运行简单的 Hello World 代码。以下是我所做的以及收到的错误,我正在使用 Cygwin。谁能帮我? theys@THEYS1 ~/java
我不知道这是否是在 StackOverflow 上提出的问题,但无论如何我都会问。 我在 Windows XP SP3 上使用 GCJ(作为 MinGW 的一部分)将 Java 类编译为 EXE。 J
我正在使用 Java 版本 4.4.4 的 gnu 编译器。它不支持 javax.swing.GroupLayout。以后的版本有这个支持吗?我之前在我的系统上多次构建过 GCC。我应该这样做吗? 最
我对 gcj 和 java 都很陌生,所以如果我遗漏了一些明显的东西,请原谅我。我正在尝试使用 gcj 编译 YUICompressor,但收到错误消息,指出找不到主类。我有: ~/java/yuic
我正在尝试在 CentOS 上安装一个软件,文档说的是这样的... If you are using a Linux distribution that installs GCJ by default
我试过GCJ它编译得很好。我尝试了 Ubuntu 和 Windows。编译后的文件以及带有 wine 的 .exe 在我的 Ubuntu 机器上运行。但是如果我尝试在我的 Ubuntu 服务器上运行,
我找不到 MinGW 的 gcj 二进制文件的链接;它没有出现在 MinGW-get 列表中,而且我在 the site 上找不到二进制文件。 . 它甚至存在吗?我在哪里可以找到它? 最佳答案 仅仅因
因为 Clojure 构建在 JVM 之上,我想我可以使用 GCJ将它直接编译成机器代码,但我找不到任何关于它的信息。 如果可能的话,我怎么能把它“剥离”成最基本的东西,这样启动时间和内存占用就尽可能
当我尝试在脚本的帮助下运行 java 应用程序时出现此异常 Caused by: java.lang.ClassNotFoundException: com.tata.topListQuoteSamp
目前(2009 年年中)GCJ 的现状如何? 最新消息是2007年的,所以我想知道是否有任何形式的进展?我记得不久前有一个可用的 lucene 编译版本,它使用 gcj 从 java 源代码编译它。目
我很抱歉,因为我是一个非常“Java 菜鸟”。无论如何,我认为我已经充分简化了这个问题,可以以一种直截了当的方式提出问题,并且会得到我想要的答案。假设我有两个文件,都在我的主目录中,如下所示: 测试.
是否可以使用 GCJ 编译用于 Java 的库,获取 dll 并从 python ctypes 调用? 我现在对 toxilibs 很感兴趣,但如果有人知道一个玩具示例那就太好了! 最佳答案 如果您想
我是一名优秀的程序员,十分优秀!