小编Jak*_*ake的帖子

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

设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
查看次数

从Chromium为Android构建WebView

我试图按照说明从铬基建立webview apk.我正在运行Android-7.0版本.我完成了铬的编译过程并生成了APK.我有两个与APK生成后的步骤相关的问题.

首先,图书馆名称与我的预期不同.默认webview.apk有一个库名libwebviewchromium.so,但我从chrome(SystemWebView.apk)构建的APK 包含lib libwebviewchromium.cr.so.我想问一下,这是否会引起问题,如果其他人也看到了这个问题.

其次,我无法com.android.webview从设备上卸载应用程序.说明需要卸载此应用程序并删除其文件夹才能安装新的APK.我收到错误:

$ adb uninstall com.android.webview     
[DELETE_FAILED_INTERNAL_ERROR]
Run Code Online (Sandbox Code Playgroud)

我想问一下是否有人知道如何解决这个问题.我看到了一个相关的问题,想问一下是否有其他方法可以做出这个答案所暗示的内容.

android webview chromium webviewchromium

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

Floyd Warshall算法的时间复杂度

Skiena的算法书包含以下对Floyd Warshall算法的解释:

 floyd(adjacency_matrix *g)
 {
   int i,j; /* dimension counters */
   int k; /* intermediate vertex counter */
   int through_k; /* distance through vertex k */
   for (k=1; k<=g->nvertices; k++)
       for (i=1; i<=g->nvertices; i++)
           for (j=1; j<=g->nvertices; j++) {
                through_k = g->weight[i][k]+g->weight[k][j];
                if (through_k < g->weight[i][j])
                      g->weight[i][j] = through_k;
           }
  }
Run Code Online (Sandbox Code Playgroud)

Floyd-Warshall全对最短路径在O(n 3)时间内运行,这渐渐没有比n调用Dijkstra算法更好.但是,循环非常紧凑,程序太短,以至于在实践中运行得更好.值得注意的是,稀有图算法之一在邻接矩阵上比邻接列表更好.

有人可以详细说明为什么大胆的部分是真的吗?

algorithm graph shortest-path floyd-warshall

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

Android linux环境变量

我通过adb shell在我的android设备上的/ proc目录中查看,并查看了其中一个进程的environ文件的内容.环境变量列表如下:

  • 路径
  • LD_LIBRARY_PATH
  • ANDROID_BOOTLOGO
  • ANDROID_ROOT
  • ANDROID_ASSETS
  • ANDROID_DATA
  • ANDROID_STORAGE
  • ASEC_MOUNTPOINT
  • LOOP_MOUNTPOINT
  • BOOTCLASSPATH
  • 外部存储
  • EMULATED_STORAGE_SOURCE
  • EMULATED_STORAGE_TARGET
  • ANDROID_PROPERTY_WORKSPACE
  • ANDROID_SOCKET_zygote

这个列表与Linux中看到的环境变量不同.当我在我的ubuntu-12.04上看到某个进程的environ文件时,我看到一个更长且非常不同的列表(只有PATH是相同的).

我有以下问题:

  • Android在哪里定义环境变量?

    由于Android中的environ文件与linux不同,因此必须在某处进行更改

  • 有没有办法为这些变量提供默认值?

    我假设init可能有默认值,forked进程继承值,并且在分叉后某处可能修改值(如果有人知道这些代码的实际位置,请分享)

  • 列表中每个环境变量的用途是什么?

    我理解从Linux派生的PATH和LD_LIBRARY_PATH变量.其他人怎么样?他们什么时候用?Android应用程序(可能是NDK)将它们用于什么?

谢谢.

linux android environment-variables

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

在asp .net mvc 5中显示外部网页

我正在使用ASP NET MVC 5构建一个类项目的网站,其中我需要网站的一部分来显示来自不同网站的页面.目标是以某种方式在我的视图中嵌入该页面,因此嵌入页面仍然可以进行UI交互,就好像页面是直接在浏览器中访问的一样(最终效果是页面呈现并允许交互但我的网站主题永远呆在它周围)

我知道一种方法是将它放在我的视图中的iframe中.但我想知道是否有不同的解决方案.我的导师建议使用部分视图,但我无法弄清楚如何获得相同的结果.任何人都可以提出不同的方法来实现这一目标 另外,在安全方面做这件事的正确方法是什么(我相信iframe是),但我想知道别人的意见?

谢谢.

asp.net-mvc

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

unix 中的组播 IPC 选项

在以下 IPC 选项列表中,可以执行多播(即 1 个发送方和多个接收方):

  • 信号
  • 半双工管
  • 命名管道
  • System V 消息队列
  • unix 域套接字

编辑

  • 内存映射文件

根据我的理解,命名管道可能是可能的(不确定)。

unix ipc

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

图 - 查找从所有其他顶点可到达的顶点

给定一个图形,我们如何确定是否存在顶点v,所有其他顶点都可以从该顶点v到达.算法应该尽可能高效.

如果我们检查一个给定的顶点,我知道怎么做; 我们可以在反向图上做dfs.但是对于这个问题,对图中的每个顶点执行它似乎效率低下.

有没有更好的办法 ?

谢谢.

algorithm graph

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

android - 无法解析符号FileProvider

我正在尝试测试FileProvider 教程.

它要求在清单中包括:

<provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="com.mydomain.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true">
</provider>
Run Code Online (Sandbox Code Playgroud)

在清单中,我收到错误:

 Cannot resolve symbol FileProvider
Run Code Online (Sandbox Code Playgroud)

我按照这些说明将v4支持库添加到Android Studio.我将以下内容添加到build.gradle文件中,但是gradle同步失败:

 compile "com.android.support:support-v4:18.0.+"
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能解决这个问题?

android

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

Android AOSP - 将应用添加到/ packages/apps

我需要将我在Eclipse中编写的新应用程序添加到/packages/appsAndroid AOSP中的文件夹中.但在将app文件夹复制到该目录,构建并重新启动Android之后,我在启动器中看不到我的应用程序.

我看到Android.mk文件丢失了.我想问一下Android.mk,为Eclipse项目编写什么是最简单的.我尝试了以下(我把文件放在应用程序的目录中)

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-subdir-java-files)

LOCAL_PACKAGE_NAME := MyApp

include $(BUILD_PACKAGE)
Run Code Online (Sandbox Code Playgroud)

我没有看到任何编译错误,但我仍然没有在启动器中看到它.

谁能告诉我Android.mk文件中缺少什么?(我从Soundrecorder应用程序中获取了代码)

是否有任何其他文件需要编辑才能将应用程序包含到/packages/apps文件夹中?

android android-source

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

Cast 增加了目标类型所需的对齐方式

我正在 ARM 上编程,并有以下代码片段(C 语言):

struct data {
   int x;
   char y[640];
};
unsigned int offset = 819202;
char *buf; // buf is assigned an address elsewhere in the code
struct data * testdata = (struct data *)(buf + offset) 
Run Code Online (Sandbox Code Playgroud)

我收到以下编译错误:

错误:强制转换增加了目标类型所需的对齐方式 [-Werror=cast-align]

testdata指针需要指向包含类型数据数组的内存部分struct data。所以我需要一个指针,以便稍后我可以将索引应用于testdata. 偏移量是硬编码在程序中的。buf作为共享内存从另一个进程接收。

例如,稍后在代码中我有:

testdata[index].x = 100;
Run Code Online (Sandbox Code Playgroud)

我看过一些关于 SO 的例子,但我不确定处理这个问题的正确方法是什么。有什么建议 ?

c arm

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