谁提供个BFS标准模板

news/2024/7/4 3:06:29
=0) continue; memset(pre 0 sizeof(lm)); memset(rm 0 j; ans = 0; memset(lm c;void hungary(){ int i qe;int x;int ans;int r qs rm[MX];int pre[MX];int qu[MX] n2;int lm[MX] Hungary 的 BFS 实现的模板了:#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int MX=1001;int bip[MX][MX];int n1 =0) printf("%d " &j sizeof(bip)); for(i=1;i<=c;i++){ scanf("%d %d" 0 &c); memset(bip &r &tn); while(tn--){ scanf("%d %d" k; int tn; scanf("%d" j sizeof(pre)); qs = qe = 0; for(j=1;j<=n2;j++){ if(bip[i][j]){ qu[qe++] = j; pre[j] = -1; } } while(qs<qe){ x = qu[qs]; if(rm[x]==0) break; qs++; for(j=1;j<=n2;j++){ if(bip[rm[x]][j]&&pre[j]==0){ qu[qe++] = j; pre[j] = x; } } } if(qe==qs) continue; while(pre[x]>0){ lm[rm[pre[x]]] = x; rm[x] = rm[pre[x]]; x = pre[x]; } lm[i] = x; rm[x] = i; ans++; }}int main(){ int i 0 sizeof(rm)); for(i=1;i<=n1;i++){ if(lm[i] j); break; } } } } printf("/n"); } else printf("NO/n"); } return 0;} rm[i]); else{ for(j=1;j<=r;j++){ if(bip[j][i]==1){ printf("%d " &k); bip[j][i] = 1; bip[k][i] = 1; } n1 = r; n2 = c; hungary(); if(ans==r) { for(i=1;i<=c;i++){ if(rm[i]

http://www.niftyadmin.cn/n/4557342.html

相关文章

linux中的特殊符号$ ‘’ 反引号 反斜杠

写在前面&#xff1a;Shell中的特殊字符有$ 美元符 \ 反斜杠 反引号 "双引号 < ,>;,*,?,[,] 1、反引号&#xff1a;命令替换在输出一句话的时候&#xff0c;如果想中间加入命令输出结果&#xff0c;在反引号里面输入命令就可以做到&#xff0c;和$COMMAND是一样的…

批处理for语句中%%~xi是什么意思

在批处理文件中使用FOR命令时 不区分大小写for命令是一个比较复杂的命令 %%i就表示为一个变量 for语句中的变量必须用%%表示 您现在可以使用下列 选项语法: ~I -删除任何引号(") 主要用于参数在指定的范围内循环执行命令 如果环境变数 未被定义 扩充%I %~fI -将%I扩充到一…

A2-02-16.DML-A Practical Use of MySQL CROSS JOIN Clause

转载自&#xff1a;http://www.mysqltutorial.org/mysql-cross-join/ Home / Basic MySQL Tutorial / A Practical Use of MySQL CROSS JOIN ClauseA Practical Use of MySQL CROSS JOIN Clause Summary: in this tutorial, you will learn about the MySQL CROSS JOIN clause …

【转】Mcrypt响应慢的一个原因

上午的时候, 有同事来找我说上周新上线的一个使用mcrypt的脚本, 响应非常慢, 但是服务器的各项指标都正常, 不知道是什么原因. 经过了解, 一个简单的可重现的脚本如下: <?php $dmcryptText "dummy"; $key "foobar"; $size mcrypt_get_iv_size(MCRYP…

你知道批处理中for语句中%%~xi是什么意思么

我也不太清楚 几乎 可能 也许 好像 ||| 大概 %~$PATH:I 搜索 PATH 环境变量所列出的目录 也就是取%%i的扩展名部分其它的展开操作还有%~I 展开 %I %%~xi将%%i解开到扩展名 如%~dpI 只将 %I 展开到驱动器号和路径 %~zI 将 %I 展开到文件的大小 %~tI 将 %I 展开到文件的日期和时间…

为什么eclipse软件用不了

JavaHome 如:"C:/Program Files/Java" 双击path 就可以编辑变量了 你java程序的路径由于要和其他变量分开 你没有设置变量我的电脑→属性→高级&#xff08;环境变量&#xff09;系统变量里面有一个path设置 在设置变量值里面输入 在前面要加入" ; "就这样…

优先级队列例题

package priorityQueue; import java.util.; import java.time.; /* This program demonstrates the use of a priority queue. 数集&#xff0c;优先级队列会对队列里面的数组进行排序&#xff0c;从小到大。 */ public class PriorityQueueTest { public static void main(S…

关于跳出for的批处理

这个是因为你加了if " ||| break是跳出循环 continue就结束本次循环 在执行下一次循环 1 只能用call了 所以不能像c语言那样嵌套循环语句 因为你要换行 就和c语言一样的 就会退出程序 他会跳到:end这个语句后面正好没有语句了 当程序跳到空格的状态时 而我们的是退出循环执…