将数字 1 排列在二维矩阵中

2024-06-26

给定二维矩阵的行数和列数

初始矩阵所有元素均为0

给定每行中应该出现的 1 的数量

给定每列中应该出现的 1 的数量

确定是否可以形成这样的矩阵。

例子:

Input: r=3 c=2 (no. of rows and columns)
2 1 0 (number of 1's that should be present in each row respectively)
1 2 (number of 1's that should be present in each column respectively)

输出:可能

解释:

1 1
0 1
0 0

我尝试解决这个问题大约 12 个小时,通过检查 Ri 的总和 = Ci 的总和

但我想知道对于像这样的情况是否不可能

3 3
1 3 0
0 2 2

r 和 c 最大可达 10^5

有什么想法我应该如何进一步采取行动?

编辑:添加的约束和输出应该只是“可能”或“不可能”。不需要显示可能的矩阵。

现在有人可以帮助我吗?


提示:一种可能的解决方案通过创建一个特殊的图并在其上运行标准的最大流算法来利用最大流问题。

如果您不熟悉上述问题,您可以开始阅读相关内容,例如这里https://en.wikipedia.org/wiki/Maximum_flow_problem https://en.wikipedia.org/wiki/Maximum_flow_problem

如果您对完整的解决方案感兴趣,请发表评论,我将更新答案。但这需要理解上面的算法。

按要求解决:

创建一个图表r+c+2 nodes.

节点0是源节点r+c+1是水槽。节点1..r代表行,而r+1..r+c列。

创建以下边:

  • 从源头到节点i=1..r容量r_i
  • 从节点i=r+1..r+c容量下沉c_i
  • 所有节点之间i=1..r and j=r+1..r+c容量 1

运行最大流算法,行节点和列节点之间的饱和边定义了应该在哪里放置 1。

或者,如果不可能,则最大流量值小于矩阵中的预期流量值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将数字 1 排列在二维矩阵中 的相关文章

  • 在 R 中创建矩阵的有效方法

    我正在尝试从向量创建这样的矩阵 vec c 2 5 9 gt A 1 2 3 4 1 2 0 0 0 2 5 3 0 0 3 9 7 4 0 实际上 第一列始终是向量元素 第二列从 0 开始 然后是 5 2 3 然后第二列的第三个元素是 9
  • 查找邻接表中所有连接的节点

    我有一个 DAG 的邻接列表 我需要从所有节点中找到所有连接的节点 例如 对于下面的 DAG 1 gt 3 gt 4 2 gt 4 3 gt 2 4 gt 5 5 gt NULL 我需要这个 1 gt 2 3 4 5 2 gt 4 5 3
  • Java 服务器和浏览器客户端之间乐观对象复制的解决方案?

    我正在构建一个系统 多个用户需要同时创建 查看和修改一组对象 该系统计划在 Java 服务器和现代浏览器客户端上运行 我可以选择哪些 它需要在网络和服务器中断时具有鲁棒性 用户界面不得阻止修改 修改需要存储在本地并在连接恢复时发布 在正常操
  • 如何在Python中实现部分旋转的LU分解?

    我想实现我自己的 LU 分解 P L U my lu A 以便给定矩阵 A 通过部分旋转计算 LU 分解 但我只知道如何在不旋转的情况下做到这一点 有人可以帮忙做部分旋转吗 def lu A import numpy as np Retur
  • 如何编写一个简单的版本控制系统?

    我想做一个简单的版本控制系统 但我不知道如何构建我的数据和代码 这是一个简短的例子 用户登录 User has two options when uploading a file 提交新文件 提交文件的新版本 用户应该能够看到树 版本不同
  • 在 Python 中计算稀疏 Gram 矩阵的最快方法是什么?

    格拉姆矩阵是结构矩阵X X T这当然是对称的 当处理稠密矩阵时 numpy dot产品实现足够智能 可以识别自乘以利用对称性 从而加快计算速度 请参阅this https stackoverflow com a 50734430 14440
  • 递归最长递增子序列的记忆

    我为最长递增子序列提出了简单的以下递归解决方案 但是 您可以帮助将记忆包含到这个递归解决方案中吗 public int findLIS int a int maxSoFar int item int count if item a leng
  • 将数字 1 排列在二维矩阵中

    给定二维矩阵的行数和列数 初始矩阵所有元素均为0 给定每行中应该出现的 1 的数量 给定每列中应该出现的 1 的数量 确定是否可以形成这样的矩阵 例子 Input r 3 c 2 no of rows and columns 2 1 0 n
  • 如何使用 C 中的 Banker's Rounding 将 double 舍入为 int

    我想编写一个函数 使用银行家的舍入方法将双精度数舍入为整数 将一半舍入为偶数 http en wikipedia org wiki Rounding Round half to even http en wikipedia org wiki
  • 如何确定 n 高数字金字塔中的最大路线成本

    我有一个像这样的数字金字塔 7 4 8 1 8 9 2 4 6 7 4 6 7 4 9 4 9 7 3 8 8 routes 32 每个数字都按其系列中的强大程度进行索引 0 9 gt 1 1 8 gt 5 2 8 gt 4 3 7 gt
  • 查找预排序数组中给定值的最低索引

    嘿 我在采访中遇到了这个问题 想知道解决它的最佳方法是什么 假设给定一个已经排序的数组 并且您想要找到某个值 x 的最低索引 这是我想出的 python 伪代码 我只是想知道是否有更好的方法来实现它 def findLowestIndex
  • 优化完美平方问题,类似于Python中的硬币找零

    我这里有一个硬币兑换的解决方案 python 中的 leetcode 硬币兑换 https stackoverflow com questions 69517078 coin change leetcode in python 因为完全平方
  • 迭代 numpy 矩阵行

    首先 我尝试在谷歌和网站中搜索来找到我的问题的答案 我认为这是非常基本的 但没有任何结果 我试图从 numpy 矩阵中获取行 但我不能 例如 如果我使用这个 result numpy matrix 11 12 13 21 22 23 31
  • 迭代格雷码更改位置的有效方法

    有多种迭代方式n 位格雷码 https en wikipedia org wiki Gray code Constructing an n bit Gray code 有些比其他更有效率 但是 我实际上并不需要格雷码 而是想迭代格雷码列表中
  • 什么是无锁多线程编程?

    我见过有人 文章 SO 帖子说他们已经设计了自己的 无锁 容器用于多线程使用 假设他们没有使用影响性能的模数技巧 即每个线程只能基于某个模数进行插入 数据结构如何能够是多线程的而且是无锁的 这个问题是针对C和C 的 无锁编程的关键是使用硬件
  • 使用指针打印方阵

    我浏览过之前回答的有关指针和矩阵的问题 但在这些情况下 矩阵被视为指向指针的指针 但是 我正在尝试创建一个使用简单指针读取矩阵的函数和另一个打印它的函数 这是我的代码 读取功能似乎工作正常 但程序在打印部分崩溃 如果我从 printf 语句
  • 如何获取字母数组的每种可能模式[重复]

    这个问题在这里已经有答案了 可能的重复 有没有更好的方法来进行字符串排列 https stackoverflow com questions 1995328 are there any better methods to do permut
  • 如何找到包含序列所有元素的最小长度子序列

    给定一个序列 例如S 1 8 2 1 4 1 2 9 1 8 4 我需要找到包含所有元素的最小长度子序列S 没有重复 顺序无关紧要 如何有效地找到这个子序列 注意 有 5 个不同的元素 S 1 2 4 8 9 最小长度子序列必须包含所有这
  • 将列表列表替换为“压缩”列表列表,同时保持顺序

    我有一个列表列表 如我所附的代码所示 如果有任何共同值 我想链接每个子列表 然后我想用列表的精简列表替换列表的列表 例子 如果我有一个清单 1 2 3 3 4 I want 1 2 3 4 如果我有 4 3 1 2 3 I want 4 3
  • 矩阵行列式算法 C++

    我是编程新手 我一直在寻找一种找到矩阵行列式的方法 我在网上找到了这段代码 但我很难理解这里的算法 我对递归的基础没有问题 但继续和主循环我很难理解 非常感谢任何可以向我解释该算法的人 int determ int a MAX MAX in

随机推荐

  • 如何在 Coq 中将等式两边相加

    这似乎是一个非常简单的问题 但我找不到任何有用的东西 我有声明 n x n 并想证明 n x x n x 我还没有找到什么定理允许这样做 你应该看看rewrite策略 然后也许reflexivity 编辑 有关重写的更多信息 You can
  • 更改分页部分中显示项目的数量

    有没有什么方法可以更改 grails 2x 中用户将显示 bean 的数量更改为分页部分 我在 grails 文档中找不到这个 它的意思是 参见 itemsPerPage
  • 如何在 VBScript 中使用最少的分隔符和时区格式化日期时间?

    我在 C 中有以下代码 DateTime dt GetDateTime string formatted dt ToString yyyyMMddTHHmmsszz 它返回以下格式的日期 20100806T112917 01 我希望能够在
  • 部署.Net应用程序

    我在部署 net windows 应用程序时确实有某些疑问 部署机器是否需要安装 Net框架 如果不是这样 我的应用程序安装程序 exe 是否包含编译器或类库与设置集成 另外 我可以将我的 net 应用程序部署在除windows 是否支持s
  • Dynamics CRM - 用户登录时注册插件

    我想在用户登录 Dynamics CRM 上的帐户时触发事件 例如在 CRM 旁边打开一个 Web 应用程序 这可能吗 我知道我可以编写插件来增强某些业务流程 例如帐户创建 任何建议将被认真考虑 CRM 不会公开您可以在其上注册插件的 Us
  • 评估函数卷积时出错

    这是我第一次尝试用 matlab 编写任何东西 所以请耐心等待 我正在尝试评估以下 ODE 的解 w N w w f t 与柯西条件 w 0 w 0 0 这里 N 是给定的非线性函数 f 是给定的源 我也需要这个功能 其中 G 是以下 OD
  • 使用 SFTP 上传文件

    我已成功通过 ftp 上传文件 但现在需要通过 SFTP 上传 我可以成功连接到远程服务器 创建文件并写入文件 但无法将现有文件从本地服务器上传到远程服务器 ftp put 没有通过 sftp 连接触发吗 我的代码用来编写一个文件 Send
  • Firebase 函数 - FirebaseError:在非交互模式下运行时缺少必需的选项(强制)

    我有一个 Firebase 函数 当用户的帐户被删除时 它会删除 Firestore 数据库中用户的集合 const firebase tools require firebase tools const functions require
  • 如何在 Kotlin 中获取可绘制对象?

    I am working on a small project in Android Studio I have drawable added to res drawable folder 但是我无法从代码中获取它 我尝试过不同的方法 Co
  • android java.lang.OutOfMemoryError 错误

    当我从网站下载大数据时 我收到以下错误信息 I global 20094 Default buffer size used in BufferedInputStream constructor It would be better to b
  • 如何使用 Windows API 重置 USB 设备?

    您知道如何使用 Windows XP API 来重置 USB 总线吗 换句话说 我希望操作系统踢出当前连接的所有 USB 设备 然后重新自动检测所有设备 我知道devcon http support microsoft com kb 311
  • 在 Java 代码中存储加密密钥? [复制]

    这个问题在这里已经有答案了 我正在使用 JASYPT 在我们基于 Java 的软件中对密码进行加密解密 这就是我们加密密码的方法 StrongTextEncryptor textEncryptor new StrongTextEncrypt
  • 如何将 Windows 窗体应用程序 (C++) 设置为具有 Aero/Glass 背景?

    我正在使用 Visual Studio 2010 Pro 用 C 创建 Windows 窗体应用程序 我想创建一个透明背景 即使用 Aero Glass 效果 类似于它围绕 Windows 照片查看器中 UI 底部的方式 此时 我已经查看了
  • 在next.js中获取客户端当前的url

    因此 我正在开发一个 Nodejs 应用程序 我将在该应用程序上建立我的新网站 并且我想为客户端的用户提供一种显示不同内容的方法 根据用户按下的内容重新呈现 我的想法是 例如 首先用户会看到 请先选择一个工具 然后用户将在导航栏中选择一个工
  • c - 后台运行的程序的退出状态

    我有一个任务 其中我必须创建一个迷你 shell 它能够执行很多操作 包括作业控制 我设法使用 fork 和 execvp 创建新的工作 但我还想获取 execvp 运行的程序的退出代码 根据我从其他帖子中查找到的内容 我可以使用以下方法来
  • 使用 JSON.Net 将 C# 转换为 JSON 序列化

    我有一个 C 列表 如下所示 var reqUsers from user in users select new username user username firstName user firstName lastName user
  • NSPredicateEditor 行模板不可在界面生成器中配置

    我正在界面生成器的故事板中创建一个辅助表 viewController 包含一个NSPredicateEditor并使用 cocoa 绑定连接到 viewController 的属性 但是 我无法正确配置行模板 当我取消选中其中一个谓词运算
  • 预编译 ASP.NET 网站上的“JIT 时间百分比”高且波动

    拥有 150 个 dll 的 ASP NET 网站预编译的 可更新 导致 的可能原因是什么JIT 时间百分比 这通常相当高 gt 60 并且波动的应用程序预热后很长一段时间 访问所有功能 并且没有 应用程序重新启动或文件更改可能会生成新的程
  • scala 中“迭代 Seq 或如果为空”的更好版本?

    是否有更短 更好的方法来执行以下操作 mySeq map elmt gt do stuff if mySeq isEmpty some other stuff Ps 我正在使用 PlayFramework 这意味着在模板中使用 所以如果我错
  • 将数字 1 排列在二维矩阵中

    给定二维矩阵的行数和列数 初始矩阵所有元素均为0 给定每行中应该出现的 1 的数量 给定每列中应该出现的 1 的数量 确定是否可以形成这样的矩阵 例子 Input r 3 c 2 no of rows and columns 2 1 0 n