小编Jak*_*ake的帖子

找出无向图中最短周期的长度

我尝试了以下方法:

1)DFS,跟踪我的DFS树中每个顶点的级别

2)每次看到后沿(x,y)时,我计算周期长度= level [x] - level [y] + 1,如果它小于最短值则保存

有人可以告诉一个反例,这种方法是错误的吗?

什么是在无向图中找到最短周期的更好方法?

谢谢.

algorithm graph data-structures

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

Linux - 了解mount命名空间并克隆CLONE_NEWNS标志

我正在阅读mountclone手册页.我想澄清一下CLONE_NEWNS如何影响子进程的文件系统视图.

(文件层次结构)

让我们将此树视为目录层次结构.让我们说5和6是父进程中的挂载点.我在另一个问题中澄清了挂载点.

所以我的理解是:5和6是挂载点意味着该mount命令以前用于在5和6处"挂载"文件系统(目录层次结构)(这意味着必须有5和6下的目录树).

mount手册页:

 A mount namespace is the set of filesystem mounts that are visible to a process. 
Run Code Online (Sandbox Code Playgroud)

clone手册页:

Every process lives in a mount namespace.  The namespace of a process is the data 
(the set of mounts) describing the file hierarchy as seen by that process.  After 
a fork(2) or clone() where the CLONE_NEWNS flag is not set, the child lives in the 
same mount …
Run Code Online (Sandbox Code Playgroud)

linux mount clone linux-namespaces

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

C - unsigned int to unsigned char array conversion

我有一个无符号的int数(2字节),我想将其转换为unsigned char类型.从我的搜索中,我发现大多数人建议您执行以下操作:

 unsigned int x;
 ...
 unsigned char ch = (unsigned char)x;
Run Code Online (Sandbox Code Playgroud)

是正确的方法吗?我问,因为unsigned char是1个字节,我们从2字节数据转换为1个字节.

为了防止任何数据丢失,我想创建一个unsigned char []数组并将各个字节保存到数组中.我被困在以下方面:

 unsigned char ch[2];
 unsigned int num = 272;

 for(i=0; i<2; i++){
      // how should the individual bytes from num be saved in ch[0] and ch[1] ??
 }
Run Code Online (Sandbox Code Playgroud)

另外,我们如何将unsigned char [2]转换回unsigned int.

非常感谢.

c byte type-conversion unsigned-char unsigned-integer

16
推荐指数
4
解决办法
7万
查看次数

如何计算页面大小?

给定:64位虚拟字节地址,16 KB页面,32位物理字节地址.

假设有效,保护,脏和使用位总共占用4位并且所有虚拟页面都在使用中,则本机上页表的总大小是多少.

到目前为止,我知道页表条目的总数:2 ^ 64/2 ^ 14 = 2 ^ 50,但我无法理解如何查找每个条目的大小.

如问题中所述,每个条目确实包含4位,但是可以从物理字节地址中找到条目的大小其余部分吗?我在这部分感到困惑.

谢谢.

virtual virtual-memory

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

asp.net mvc单选按钮列表

我试图在ASP.NET MVC中显示值列表的单选按钮列表.我对如何为单选按钮列表和要显示的视图编写模型感到困惑.我需要显示一个静态的值列表.

可以请一些帮忙.

谢谢.

asp.net-mvc

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

使用Linux netfilter将struct iphdr*中的源IP地址转换为等效字符串

我想将源和目标IP地址从使用netfilter捕获的数据包转换为char*.

在我的netfilter钩子函数中,我有:

sock_buff = skb; // argument 2 of hook function

// ip_header is struct iphdr*
ip_header = (struct iphdr *)skb_network_header(sock_buff);

// now how to convert ip_header->saddr & ip_header->daddr to char *
// ip_header->saddr & ip_header->daddr are of type __be32
Run Code Online (Sandbox Code Playgroud)

谢谢.

c linux kernel netfilter kernel-module

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

如果其中一台机器死机,TCP连接如何终止?

如果在两个主机(A和B)之间建立TCP连接,并且让主机A向主机B发送了5个八位字节,然后主机B崩溃(由于未知原因).主机A将等待确认,但是在没有获得确认时,将重新发送八位字节并减少发送方窗口大小.由于数据包丢失,这将重复几次,直到窗口大小缩小到零.我的问题是,接下来会发生什么?

networking tcp

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

OpenSSL:无法使用SSL_CTX_new()创建SSL_CTX*

按照页面上的说明,我尝试使用openSSL以安全的方式连接客户端/服务器.

我无法按如下方式创建SSL_CTX:

 /* OpenSSL headers */

 #include "openssl/bio.h"
 #include "openssl/ssl.h"
 #include "openssl/err.h"

 int main()
 {

       /* Initializing OpenSSL */

       SSL_load_error_strings();
       ERR_load_BIO_strings();
       OpenSSL_add_all_algorithms();

       SSL_CTX * ctx = SSL_CTX_new(SSLv23_client_method());

       .....
  }
Run Code Online (Sandbox Code Playgroud)

ctx引用总是为NULL.任何人都可以告诉我错过了哪一步?

谢谢.

更新

在检查错误时,消息是

 Error: library has no ciphers
Run Code Online (Sandbox Code Playgroud)

c linux ssl openssl

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

android - FileProvider - 名称不能为空

我的清单中有以下FileProvider:

    <provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="com.android.provider.DataSharing-1"
        android:exported="false"
        android:grantUriPermissions="true">

        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/paths"/>

    </provider>
Run Code Online (Sandbox Code Playgroud)

我在应用启动时遇到以下异常:

 java.lang.RuntimeException: Unable to get provider android.support.v4.content.FileProvider: java.lang.IllegalArgumentException: Name must not be empty
        at android.app.ActivityThread.installProvider(ActivityThread.java:4793)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:4385)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4325)
        at android.app.ActivityThread.access$1500(ActivityThread.java:135)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5017)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
        at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.IllegalArgumentException: Name must not be empty
        at android.support.v4.content.FileProvider$SimplePathStrategy.addRoot(FileProvider.java:644)
        at android.support.v4.content.FileProvider.parsePathStrategy(FileProvider.java:587)
        at android.support.v4.content.FileProvider.getPathStrategy(FileProvider.java:534)
        at android.support.v4.content.FileProvider.attachInfo(FileProvider.java:352)
        at android.app.ActivityThread.installProvider(ActivityThread.java:4790) ...
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?我在哪里错过了一个名字?

编辑:

RES/XML/paths.xml

<paths xmlns:android="http://schemas.android.com/apk/res/android">

    <files-path android:name="my_images" android:path="images/"/>
</paths>
Run Code Online (Sandbox Code Playgroud)

android

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

如何在无向图中查找反馈边集

设G =(V,E)为无向图.如果G的每个循环在F中具有至少一个边缘,则边集的F ​​FE被称为 反馈边集.

(a)假设G未加权.设计一种有效的算法来查找最小尺寸的反馈边集.

(b)假设G是具有正边权重的加权无向图.设计一种有效的算法来找到最小权重反馈边集.


我的解决方案(需要建议):

a)最小尺寸反馈边集:由于图是未加权的,我们可以使用DFS.我们像往常一样从任何顶点开始DFS.当我们遇到后边缘时,我们将其插入一组反馈边缘.当DFS完成时,该集将是答案.

b)最小权重反馈边集:由于图是加权的,我们可以使用Kruskal.但Kruskal通常以最小重量的边缘开始.如果我们可以否定所有边权重,然后运行Kruskal,每当我们在相同组件的顶点之间获得边缘时,我们可以将其保存在反馈边集中.最后,否定边权重.我建议否定边权重的原因是因为我们需要最小权重反馈集.对于负重,Kruskal将从具有最小重量(实际上最大)的边缘开始,并且将发现具有较小重量的相同组件的边缘.

有人能说出这个解决方案是否正确吗?

algorithm graph kruskals-algorithm

9
推荐指数
3
解决办法
6259
查看次数