小编Pat*_*ryk的帖子

在附加条件下寻找最快路径

我想知道,如果Dijkstra算法在无向图中有多个直接连接时能够正常工作.

例如:

在此输入图像描述

我想用Dijkstra找到最快的路径,但还有另外一个条件.边上的所有additional_data的总和不能是> = x.因此,如果它出现了重量:3的边缘使用错误,我的程序将尝试第二个边缘.

编辑:我的任务是找到最快的路径,在additional_data边缘的总和不能高于x 的附加条件下.你能告诉我如何处理这个问题吗?

edit2 :(设置赏金)

我一直在研究互联网,直到我发现这个链接.有关如何做我要求的事情的解释.(中上层 acapite)

我试图以某种方式使用它2天,但我担心我不能正确理解这个算法.我想请你们中的一些人帮助我解决这个问题,向我解释一些例子(几个第一步).这是一个例子:

在此输入图像描述

c# algorithm dijkstra

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

在c#中的线程之间传递数据

我发现很少有关于我的问题的问题,但我仍然不能自己解决这个问题,所以我会试着在这里问一下.我会粘贴代码,所以我认为它会更容易解释.

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        Thread thread = new Thread(new ThreadStart(StartCalculation));
        thread.Start();
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }


    public void StartCalculation()
    {
        List<int> numbers = new List<int>();
        for (int i = 0; i <= 100; i++)
        {
            numbers.Add(i);
            string textForLabel = i.ToString();
            label.SafeInvoke(d => d.Text = textForLabel);
        }

    }  
}
Run Code Online (Sandbox Code Playgroud)
  • 我想从方法StartCalculation获取一个访问,它从不同的线程开始.我想从Form1访问那个int列表(10秒后10个元素,20秒后20个元素等等).那可能吗?
  • 是否可以在Form1()中创建列表然后在StartCalculation中更改它?谢谢你的答案:)

编辑Groo-/ -

public partial class Form1 : Form
{

List<int> list = new List<int>(); // list of int …
Run Code Online (Sandbox Code Playgroud)

c# multithreading

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

String.Count和String.Length有什么区别?

我正在交替使用它们,它们之间有什么区别吗?

c# string count

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

在3D阵列中找到最深路径的最快方法是什么?

我一直试图找到解决我的问题超过一个星期的时间,我找不到任何比一个百万迭代编程更好的东西,所以我认为是时候请别人帮助我了.

我有一个3D阵列.让我们说,我们谈的是地面,第一层是一个表面.另一层是地下的地板.我必须找到最深的路径长度,地下孤立洞穴的数量和最大洞穴的大小.

这是我的问题的可视化.

Input:
5 5 5 // x, y, z
xxxxx
oxxxx
xxxxx
xoxxo
ooxxx

xxxxx
xxoxx

and so...
Run Code Online (Sandbox Code Playgroud)

Output:
5 // deepest path - starting from the surface
22 // size of the biggest cave
3 // number of izolated caves (red ones) (izolated - cave that doesn't reach the surface)
Run Code Online (Sandbox Code Playgroud)

请注意,即使二楼的红色电池放在绿色的旁边,它也不是同一个洞穴,因为它是对角放置的,不计算在内.我被告知最好的方法,可能是使用递归算法"划分和规则",但我真的不知道它是怎么样的.

arrays algorithm 3d

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

如何获得窗口的位置?

我想知道获得进程窗口位置的方式.我一直在网上寻找,但没有结果.谢谢 :)

Process[] processes = Process.GetProcessesByName("notepad");
Process lol = processes[0];

IntPtr p = lol.MainWindowHandle;
Run Code Online (Sandbox Code Playgroud)

c# position window process intptr

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

如何计算二维数组中相同单元的组?

这是一个例子(计算黑色):

输入:

在此输入图像描述

输出:

5 4 // 5 groups (4 squares each)
1 1 // 1 group containing 1 square
Run Code Online (Sandbox Code Playgroud)

对于现在,我想不出什么比迭代的痛苦更好.是否有可能以递归的方式获得这些组?谢谢

arrays algorithm

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

如何在linux中制作脚本使用我的interpteter并工作?(#!)

我为linux做了一个简单的shell.它与getline()逐行读取,直到ctrl + d(eof/-1)进入标准输入.

在进入stdin时,逐行代码:

ls -al &
ls -a -l
Run Code Online (Sandbox Code Playgroud)

我的shell工作得很好.

我试图通过我的shell运行脚本,但它不起作用.当我执行脚本时,我的shell会自动执行(第1行),但shell不会解释其他行.

#!/home/arbuz/Patryk/projekt/a.out
ls -al &
ls -a -l
Run Code Online (Sandbox Code Playgroud)

什么可能导致它?我不得不说我是linux的初学者而老师并没有对所有这些东西说什么.只是一个功课.我已经完成了一些研究,但这些都是我发现的.

这是我的Shell的代码.我已经将shell路径添加到etc/shells中,但它仍然无效

#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdbool.h>

int main()
{

    ssize_t bufer_size = 0;
    char* line = NULL;
    int line_size;

    while ((line_size = getline(&line, &bufer_size, stdin)) != -1) // while end of file
    {
        char** words_array;
        words_array = (char**)malloc(200 * sizeof(char*));

        int words_count = 0;
        int i;
        int j = 0;
        int words_length = 0;
        char …
Run Code Online (Sandbox Code Playgroud)

c linux shell

8
推荐指数
2
解决办法
242
查看次数

如何在C#中找到字符串的宽度(以像素为单位)

我正在尝试实现框架文本(使用Windows窗体),例如:

在此输入图像描述

高度始终相同,因为我的字符串少于20个字符.宽度怎么样?有没有办法自动获得它?

c# winforms

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

表单应用程序中的Main方法在哪里?

我想知道是否有一种方法来创建GUI程序,使用main()函数(就像在控制台应用程序中一样),所以我在main()中创建所有对象,我可以从另一个访问/更改它与按钮/文本框等连接的功能甚至可能吗?,p

请理解我是GUI的初学者,我正在谈论的事情可能很有趣但仍然,我想学习!谢谢 :)

c# user-interface

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

如何在没有实际迭代所有图片的像素的情况下减轻C#中的图片?

我有照亮照片的问题.我知道我可以通过增加/减少像素的值来做到这一点,但这不是我想要的.我被告知有一种方法不需要迭代所有像素,而且速度要快得多.这该怎么做?谢谢.

c# drawing image pixel raster

7
推荐指数
3
解决办法
2390
查看次数