小编Atu*_*hav的帖子

连接所有岛屿的最低成本是多少?

有一个大小为N x M的网格.一些细胞是由'0'表示的,而其他细胞是.每个水电池上都有一个数字,表示在该电池上制造的电桥的成本.您必须找到所有岛屿可以连接的最低成本.如果单元共享边或顶点,则单元连接到另一个单元.

可以用什么算法来解决这个问题?
编辑:如果N,M的值非常小,可以用作蛮力方法,比如说NxM <= 100?

示例:在给定图像中,绿色单元格表示岛屿,蓝色单元格表示水,浅蓝色单元格表示应在其上制作桥梁的单元格.因此,对于下面的图像,答案将是17.

http://i.imgur.com/ClcboBy.png

最初我想到将所有岛屿标记为节点并用最短的桥连接每对岛屿.然后问题可以减少到最小生成树,但在这种方法中我错过了边缘重叠的情况.例如,在下图中,任意两个岛之间的最短距离为7(标记为黄色),因此通过使用最小生成树,答案为14,但答案应为11(以浅蓝色标记).

图像2

algorithm heuristics mathematical-optimization linear-programming dynamic-programming

82
推荐指数
2
解决办法
8847
查看次数

Ruby字符串到运算符

我有一个阵列

operator = ['+', '-', '*', '/']
Run Code Online (Sandbox Code Playgroud)

我想用它们以4种不同的方式解决方程式.我想它会是这样的:

operator.map {|o| 6 o.to_sym 3 } # => [9, 3, 18, 2]
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

ruby string operators

12
推荐指数
1
解决办法
5570
查看次数

如何在使用聚合的kibana 4中创建脚本字段?

Kibana 4具有添加脚本字段和编写自定义脚本的新功能.我希望编写一个使用聚合的脚本.它很容易在脚本脚本中进行简单的算术运算,但是为了进行聚合,我很困惑.我是Kibana和elasticsearch的新来者,我正在寻找一个开始的示例脚本..

elasticsearch kibana kibana-4

11
推荐指数
1
解决办法
7441
查看次数

PHP - 如何在预准备语句中将数组替换为主机参数

我能够绑定类型的值int,str,boolnull,但我无法绑定数组类型.
我已经试过这两种功能,即bindValuebindParam,但都没有奏效.我怎么能做到这一点?

// a helper function to map Sqlite data type
function getArgType($arg) {
    switch (gettype($arg)) {
        case 'double':  return SQLITE3_FLOAT;
        case 'integer': return SQLITE3_INTEGER;
        case 'boolean': return SQLITE3_INTEGER;
        case 'NULL':    return SQLITE3_NULL;
        case 'string':  return SQLITE3_TEXT;
        default:
            throw new \InvalidArgumentException('Argument is of invalid type '.gettype($arg));
    }
}

$sql = "SELECT * FROM table_name WHERE id IN (?)";
$params = [[10, 9, 6]]; // array of array
$dbpath …
Run Code Online (Sandbox Code Playgroud)

php sql sqlite

7
推荐指数
1
解决办法
734
查看次数

Sqlite3 - 如何从csv导入NULL值

我把一个mysql表转储为CSV.在这个CSV文件中,NULL值写为\N
Now我想将此数据导入sqlite数据库,但我无法告诉sqlite \N是空值.它将其视为字符串,并将列值存储为"\ N"而不是NULL.

任何人都可以指导如何使用.nullvaluesqlite中的dot命令.我无法设置\N为nullvalue.

sqlite> .show
nullvalue: ""
sqlite> .nullvalue \N
sqlite> .show
nullvalue: "N"
sqlite> .nullvalue '\N'
sqlite> .show
nullvalue: "\\N"
sqlite> .nullvalue "\N"
sqlite> .show
nullvalue: "N"
sqlite> .nullvalue \\N
sqlite> .show
nullvalue: "\\N"
sqlite> .nullvalue '\'N
Usage: .nullvalue STRING
sqlite> .nullvalue '\\'N
Usage: .nullvalue STRING
sqlite> .nullvalue \\N
sqlite> .show
nullvalue: "\\N"
sqlite>
Run Code Online (Sandbox Code Playgroud)

这是每个值之后的输出 nullvalue

sqlite> .import /tmp/mysqlDump.csv employee
sqlite> select count(*) from employee where updatedon='\N';
94143
sqlite> select count(*) …
Run Code Online (Sandbox Code Playgroud)

mysql csv sqlite

7
推荐指数
1
解决办法
3909
查看次数

阵列初始化的时间复杂度是多少?

考虑以下两种C或C++中的数组初始化情况:

情况1:

int array[10000] = {0}; // All values = 0
Run Code Online (Sandbox Code Playgroud)

案例2:

int array[10000];
for (int i = 0; i < 10000; i++) {
    array[i] = 0;
}
Run Code Online (Sandbox Code Playgroud)

他们俩都花时间吗?案例1的复杂性是什么?哪个更好?

c c++ arrays initialization

6
推荐指数
2
解决办法
5470
查看次数

为什么需要在Ruby on Rails应用程序中包装线程?

在RoR应用程序中,我正在编写一个API,在其中我需要调用多个上游API,因此我打算并行调用它们以节省时间。我想在ruby-on-rails应用程序中实现多线程逻辑时遵循最佳实践。

RoR指南明确指出,我们需要包装代码,但没有解释为什么它很重要。

根据红宝石指南

每个线程都应在运行应用程序代码之前进行包装,因此,如果您的应用程序手动将工作委托给其他线程,例如通过使用线程池的Thread.new或Concurrent Ruby功能,则应立即包装该块

  • 我的应用程序运行Rails版本4。
  • 单个请求中上游API调用的数量为3到30
  • 我签出了类似的SO post,但未提及有关wrapping线程代码的任何内容。

ruby multithreading ruby-on-rails

5
推荐指数
1
解决办法
49
查看次数

最小化 Array 的每个元素与整数 K 之间的差值总和

给定一个由 N 个非负整数组成的数组 A,找到一个整数 k,使得每个元素与 k 的差之和最小。
求和(abs(A[i] - k)), 1 <= i <= N,或简单地
|A[1] - k| + |A[2] - k| + |A[3] - k| + ... + |A[N] - k|

我的方法:

low = minimumValueInArray(A);
high= maximumValueInArray(A);
ans = Infinite;
for (k = low; k <= high; k++) {
    temp = 0;
    for (i = 1; i <= N; i++) {
        temp += abs(A[i] - K);
    }
    ans = min(ans, temp);
}
return ans;
Run Code Online (Sandbox Code Playgroud)

这只是试图解决所有 K 值的蛮力方法。我们可以优化它吗? …

algorithm math optimization minimum

2
推荐指数
1
解决办法
3697
查看次数

Ruby:如果有条件,如何组合推杆并返回内部?

如何打印消息,然后从使用ruby的函数返回?

2.3.4 :038 > def foo(num)
2.3.4 :039?>   print "Your number is: #{num}" && return if num > 10
2.3.4 :040?>   print "Number too small"
2.3.4 :041?>   end
 => :foo
2.3.4 :042 > foo(47)
 => nil
2.3.4 :043 > foo(7)
Number too small => nil
2.3.4 :044 >
Run Code Online (Sandbox Code Playgroud)

当我用foo打电话给我时,47为什么没有得到Your number is: 47输出?

PS:也可以用其他更简单的方式编写此函数,我只是想通过此函数表达我的怀疑。

ruby ruby-on-rails

1
推荐指数
1
解决办法
718
查看次数