在这里,我们将看到如何在多线程环境中执行矩阵加法和减法。pthread 用于在 C 或 C++ 中同时执行多个线程。有两个矩阵 A 和 B。每个矩阵的阶数为 (m x n)。每个线程将取每一行,并执行加法或减法。因此,对于 m 行,有 m 个不同的线程。示例 #include #include #include #include #define CORE 3 #define MAX 3 using namespace std; int AMat[MAX][MAX] = {{10, 20, 30}, {40, 50, 60}, {70, 80, 50} }; int BMat[MAX][MAX] = {{80, 60, 20}, ... 阅读更多
在这里,我们将看到如何获得以 n2 – (n-1)2 为第 n 项的级数之和。递归关系如下所示 -Tn = n2 – (n-1)2 因此级数为 -我们需要找到 S mod (109 + 7),其中 S 是给定级数的所有项之和。示例 #include #define X 1000000007 using namespace std; long long getSum(long long n) { return ((n % X) * (n % X)) % X; } int main() { long long n = 56789; cout
在这里,我们将看到不同类型的多态性。这些类型是 -特设包含参数化强制特设多态性称为重载。这允许同名函数对不同类型以不同的方式起作用。函数和运算符都可以重载。某些语言不支持运算符重载,但函数重载很常见。示例 #include using namespace std; int add(int a, int b) { return a + b; } string add(string a, string b) { return a + b; //连接 } int main() { cout
在这里,我们将看到 LCS 问题的一种空间优化方法。LCS 是最长公共子序列。如果两个字符串是“BHHUBC”和“HYUYBZC”,则子序列的长度为 4。已经有一种动态规划方法,但是使用动态规划方法,它将占用更多空间。我们需要 m x n 阶的表,其中 m 是第一个字符串中字符的数量,n 是第二个字符串中字符的数量。在这里,我们将看到如何使用 O(n) 的辅助空间来实现此算法。如果我们观察旧方法 ... 阅读更多
假设我们有一个如下图所示的图。该图是彼得森图。顶点编号从 0 到 9。每个顶点都有一些字母。考虑该图中的一个路径 W,其中使用了 L 个顶点。当 W 和 S 中的字母序列相同时,具有 L 个字母的字符串 S 由路径 W 实现。我们可以多次访问顶点。例如,一个字符串 S 类似于“ABBECCD”,它由路径 (0, 1, 6, 9, 7, 2, 3) 实现。我们的任务是找到这样的路径,如果存在这样的路径,... 阅读更多