我有一个多个"动物笔"的加权图,每支笔至少有3个边/点和至少两个笔.我必须弄清楚要移除的最小加权边缘以便连接所有笔(您可以通过移除未连接到其他笔的外边缘来连接它们).
有人可以推荐一个算法或一个过程,我可以用它找到最小的加权墙去除.我在考虑Prim的算法,但我甚至不确定如何应用它.
这是问题S4 http://cemc.math.uwaterloo.ca/contests/computing/2010/stage1/seniorEn.pdf
我不希望答案只是如何处理它的方向
我从来没有对正则表达式很好,我似乎无法得到这个......
我试图匹配这些行的语句(这些是我正在阅读的文本文件中的两行)
Lname Fname 12.35 1
Jones Bananaman 7.1 3
Run Code Online (Sandbox Code Playgroud)
目前我正在使用这个语句
reader.hasNext("\\w+ \\w+ \\d*\\.\\d{1,2} [0-5]")
Run Code Online (Sandbox Code Playgroud)
但它没有进入while语句.当我删除while时,程序读取文本文件就好了.代码段是这样的:
private void initializeFileData(){
try {
Scanner reader = new Scanner(openedPath);
while(reader.hasNext("\\w+ \\w+ \\d*\\.\\d{1,2} [0-5]")){
employeeInfo.add(new EmployeeFile(reader.next(), reader.next(), reader.nextDouble(), reader.nextInt(), new employeeRemove()));
}
for(EmployeeFile element: employeeInfo){
output.add(element);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)