这是Codechef提出的问题,但请耐心等待. https://www.codechef.com/ZCOPRAC/problems/ZCO16001
这场比赛是为了准备在印度举办的Zonal计算奥林匹克运动会,所以它不是一场竞争性的比赛,我可以从中获得这样的比赛.只需要一些帮助就可以看出我的代码有什么问题,因为我有一种感觉,我忽略了一些大而愚蠢的东西.:P
所以基本上这个问题总结为这个.
可以说有两个向量或数组.您需要在它们之间交换元素,以使它们的最大元素之和最小.但是,您最多可以交换K次.然后输出此总和的值.
我的方法很简单.取Vector1(V1)中的最大数字,并将其与V2中的最低值交换.添加每个的最高值.这样做,但这次交换V2中的最高数字与V1中的最低数字.添加每个的最高值.更好的交换将是具有最低总和的那个并且从那里继续K次.
例如:
V1 = 5 6 7 9
V2 = 9 10 5 4
在这种情况下,如果K = 1,我将首先用V2的4交换V1的9.这给出:
V1 = 5 6 7 4
V2 = 9 10 5 9
最高数字的总和为17,与之前的19相比.我可以做的第二次交换是来自V2的10和来自V1的5:
V1 = 10 6 7 4
V2 = 9 5 5 9
这个和为19,所以第一个交换更好,输出应该是17.
这是我的解决方案:
#include <iostream>
#include <vector>
#include <algorithm>
#define print(vec) for (int i = 0; i < vec.size(); i++) { cout << vec[i] << " "; } cout << endl;
using namespace std; …Run Code Online (Sandbox Code Playgroud) 问题:http://www.spoj.com/problems/DIVREL
问题是,我们只需要从给定的一组元素中找到不是倍数(可以被b形式整除)的元素的最大数量.如果我们只是从一个元素到它的多个边缘并构造一个图形,那么它将是一个DAG.
现在问题只是改变为找到包含所有顶点的链的最小数量,这些顶点使用Dilworth定理等于antichain基数,因为它是一个部分有序的集合.
使用二分匹配可以找到最小链(如何:它是最小路径覆盖)但现在我无法找到自身的反链元素?
我使用graphx创建了有向图.
#src->dest
a -> b 34
a -> c 23
b -> e 10
c -> d 12
d -> c 12
c -> d 11
Run Code Online (Sandbox Code Playgroud)
我想得到这样的所有两个跳邻居:
a -> e 44
a -> d 34
Run Code Online (Sandbox Code Playgroud)
我的图表非常大,所以我想优雅高效地完成它.有没有人对图形实例的最佳方法有什么建议?
给定一个N < 10 000元素数组,对于数组中的每个位置i,找到(以最有效的方式)从左边开始(即从位置i-1到0)的多少连续元素小于或等于array[i].
这是一个例子:
Array: 4 3 6 1 1 2 8 5 9
Res: 0 0 2 0 1 2 6 0 8
( pos 0 (element 4) -> 0 consecutive elements before it,
pos 1 (element 3) -> 0 consecutive elements before it smaller than 3 (4>3)
pos 2 (element 6) -> 2 consecutive elements before it smaller than 6 (4,3)
and so on..
)
Run Code Online (Sandbox Code Playgroud)
我认为这是一个动态编程问题,因为它在问题中说"最有效的方式",在解决方案中它说有一个O(n) …
我想知道在使用 Windows 10 在 Eclipse 中创建新的 C++ 项目时,适用于 Linux 的 Windows 子系统是否使我能够选择其 Linux GCC 编译器?如果是这样,我想知道我将如何设置它。提前致谢!
给定无向图G =(V,E),没有负权重.检查给定图中每个顶点的最短路径唯一性的复杂性是多少?
我尝试了下面的代码,但它没有给我正确的答案。
这是问题陈述。
假设您有一个二维网格。每个点要么是陆地,要么是水。还有一个起点和一个目标。
现在有打开门的钥匙。每把钥匙对应一扇门。
实现一个函数,使用地块、钥匙和打开的门返回从起点到目标的最短路径。
数据表示
地图将作为字符串数组传递。
地图可以具有以下图块。
0 = Water1 = Land2 = Start3 = Goaluppercase = doorlowercase = key网格可以是这样的:
Run Code Online (Sandbox Code Playgroud){{'0', '2', '1', '1', '1'}, {'0', '1', '0', '0', '1'}, {'0', '0', '0', '0', '1'}, {'0', '0', 'A', '0', '1'}, {'1', '1', 'a', '1', '1'}, {'1', 'b', '0', '0', 'B'}, {'1', '1', '0', '0', '1'}, {'0', '1', '0', '0', '3'}};所以最短路径应该是:01->02->03->04->14->24->34->44->43->42->41->51->41->42->43 ->44->54->64->74
我的代码如下:
public class shortestPath {
static int shortest = Integer.MAX_VALUE;
static …Run Code Online (Sandbox Code Playgroud) 我想知道幂集问题能否转化为背包问题?在我看来,它们是相同的,例如,我们可以将其视为幂集,即每个递归阶段都会启动 2 个递归调用(一个采用 thi元素,另一个绕过它)。我也可以像背包问题一样用动态规划来解决它,所以这让我想知道是否所有幂集问题都可以转化为背包问题。那是对的吗 ?
以下是硬币变化的代码片段,其中一个具有 O(2 N ) 时间复杂度,另一个具有 O(N 2 ) 运行时间的动态编程。
// O(2^N) time complexity
void bruteforce(int[] coins, int i, int N, String expr)
{
if (i == coins.length) {
if (N == 0)
count++;
return;
}
if (N >= coins[i])
recursion(coins, i, N - coins[i], expr + " " + coins[i]);
recursion(coins, i + 1, N, expr);
}
// O(N^2) time complexity
int dynamicProgramming(int[] coins, int N)
{
int [] dp = new int[N …Run Code Online (Sandbox Code Playgroud) algorithm recursion knapsack-problem dynamic-programming powerset
在假设我的配置中的任何地方都没有使用这些密钥保管库并且这些是我的测试留下的一些内容之后,我从资源管理器中删除了一些密钥保管库。现在我无法启动虚拟机并出现此错误消息。
无法启动虚拟机“xxxx”。错误:URL“xxxx”引用的 Key Vault 机密不存在。
由于我没有时间再次构建虚拟机,您能否建议我如何让虚拟机重回正轨?
多谢。
algorithm ×5
apache-spark ×1
arrays ×1
azure ×1
azureportal ×1
c++ ×1
eclipse ×1
editor ×1
gcc ×1
graph-theory ×1
java ×1
math ×1
matlab ×1
max-flow ×1
powerset ×1
puzzle ×1
recursion ×1
spark-graphx ×1
ubuntu ×1
windows ×1