fp一个匹配问题(匈牙利算法)John先生晚上写了n封信,并相应地写了n个信封将信装好,准备寄出.但是,第二天John的儿子Small John将这n封信都拿出了信封.不幸的是,Small John无法将拿出的信正确地

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/20 14:03:43
fp一个匹配问题(匈牙利算法)John先生晚上写了n封信,并相应地写了n个信封将信装好,准备寄出.但是,第二天John的儿子SmallJohn将这n封信都拿出了信封.不幸的是,SmallJohn无法将

fp一个匹配问题(匈牙利算法)John先生晚上写了n封信,并相应地写了n个信封将信装好,准备寄出.但是,第二天John的儿子Small John将这n封信都拿出了信封.不幸的是,Small John无法将拿出的信正确地
fp一个匹配问题(匈牙利算法)
John先生晚上写了n封信,并相应地写了n个信封将信装好,准备寄出.但是,第二天John的儿子Small John将这n封信都拿出了信封.不幸的是,Small John无法将拿出的信正确地装回信封中了.
编程任务:
将Small John所提供的n封信依次编号为1,2,…,n;且n个信封也依次编号为1,2,…,n.假定Small John能提供一组信息:第i封信肯定不是装在信封j中.请编程帮助Small John,尽可能多地将信正确地装回信封.
è数据输入:
输入数据由文件名为foi.in的文本文件提供.
n文件的第一行是一个整数n(n≤100).信和信封依次编号为1,2,…,n.
n接下来的各行中每行有2个数i和j,表示第i封信肯定不是装在第j个信封中.文件最后一行是2个0,表示结束.
结果输出:
计算结果输出到文件名为foi.out 的文本文件中.
输出文件的各行中每行有2个数i和j,表示第i封信肯定是装在第j个信封中.请按信的编号i从小到大顺序输出.若不能确定正确装入信封的任何信件,则输出“none”.
输入示例
5
1 2
1 4
1 5
2 1
2 3
3 2
3 5
4 1
4 3
5 2
5 4
5 5
0 0
输出示例
3 4

fp一个匹配问题(匈牙利算法)John先生晚上写了n封信,并相应地写了n个信封将信装好,准备寄出.但是,第二天John的儿子Small John将这n封信都拿出了信封.不幸的是,Small John无法将拿出的信正确地
program p1557;
var
i,j,m,n,x,y,tot,v:longint;
link:array[1..200] of longint;
cover,f:array[1..200] of boolean;
map:array[0..200,0..200] of boolean;
Function work(i:longint):boolean;
var
q,k:longint;
begin
work:=true;
for k:=1 to n do
if (map[i,k]=true) and (cover[k]=false) then
begin
q:=link[k];
link[k]:=i;
cover[k]:=true;
if (q=0) or (work(q)=true) then exit;
link[k]:=q;
end;
work:=false;
end;
Begin
assign(input,'i.i'); reset(input);
assign(output,'o.o'); rewrite(output);
readln(n);
for i:=1 to n do
for j:=1 to n do
map[i,j]:=true;
repeat
readln(x,y);
map[y,x]:=false;
until (x=0) and (y=0);
for i:=1 to n do
begin
for j:=1 to n do
cover[j]:=false;
work(i);
end;
tot:=0;
for i:=1 to n do
begin
j:=link[i];
link[i]:=0;
map[j,i]:=false;
for v:=1 to n do cover[v]:=false;
if (work(j)=false) then
begin
tot:=tot+1;
writeln(j,' ',i);
end;
map[j,i]:=true;
link[i]:=j;
end;
if tot=0 then writeln('none')
end.

fp一个匹配问题(匈牙利算法)John先生晚上写了n封信,并相应地写了n个信封将信装好,准备寄出.但是,第二天John的儿子Small John将这n封信都拿出了信封.不幸的是,Small John无法将拿出的信正确地 二分图匹配(匈牙利算法)中增广路,交错路的确定方式,以及什么是增广路?嗯,解释一下在匈牙利算法中,增广路是什么?怎么确定一个增广路或交错路,请说的清楚一点. 匈牙利算法问题(一个20*20的矩阵,选择20个数使得和最大,这二十个数不出现在同一行列)匈牙利算法问题(一个20*20的矩阵,在其中选择20个数使得和最大,这二十个数不出现在同一行列)我在 线性规划主要解决经济生活中遇到的诸多问题,其中匈牙利算法适宜解决什么问题 写一个算法,借助栈进行括号的匹配校验 LED驱动器匹配问题我有一个驱动器,如图,如何匹配灯珠(灯条) 数据结构:括号匹配问题.假设一个算术表达式中允许包含两种括号:()[] 其嵌套的次序随意,请设计一个算法判断一个算术表达式中的括号是否匹配 求一个括号算法匹配算法的代码,C语言版的数据结构 检验括号匹配的算法 栈和队列问题算法假设一个人算术表达式包含圆括弧、中括弧和花括弧三种类型的括弧,编写一个判别表达式中括弧是否正确匹配的算法. 射频PA到SAW Filter传输匹配问题手机TXmodule 部分,switch出来后接SAW Filter,需要调节这段的匹配,中间用到了一个L型匹配电路,从switch到SAW是先串联一个器件后并联一个器件,器件的容感性和大小需要 二分图匹配 匈牙利算法我现在已经看懂了那个find函数,但是现在我不明白为什么在主程序中调用这样的话就可以实现二分图匹配?ans:=0;for i:=1 to n do if find(i)then inc(ans);writeln(ans);假设i=1的时 分手信 英文txt求dear john(分手信)英文小说TXT先谢一个! 利用匈牙利算法求解指派问题的复杂度如果我有N个任务,N个人来完成,每个人完成该任务的代价已知,就是那种标准的指派问题,那么我以最小代价为目标用匈牙利算法求解时,算法复杂度是多少 括号匹配问题 数据结构括号匹配问题? 基本算法的问题写出判断一个函数f(x)奇偶性的算法 判断题 算法只能解决一个问题(说明理由)