onethousandpiece的专栏

import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class 网格寻路 {public static int sum=0;public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner=new Scanner(System.in);int i,qiDian,zhongDian;List<WangNode> jiHe;int nodeShu=scanner.nextInt();int bianShu=scanner.nextInt();WangNode[] wangNodes=new WangNode[nodeShu];for(i=0;i<nodeShu;i++){wangNodes[i]=new WangNode(i+1);}for(i=0;i<bianShu;i++){qiDian=scanner.nextInt()-1;zhongDian=scanner.nextInt()-1;wangNodes[qiDian].jieDian.add(wangNodes[zhongDian]);wangNodes[zhongDian].jieDian.add(wangNodes[qiDian]);}for(i=0;i<nodeShu;i++){jiHe=new ArrayList<WangNode>();jiHe.add(wangNodes[i]);search(wangNodes[i],jiHe);jiHe.clear();}System.out.println(sum);}public static void search(WangNode qiDian,List<WangNode> jiHe){List<WangNode> jiHeTemp=new ArrayList<WangNode>(jiHe);WangNode lastNode;try {lastNode = jiHe.get(jiHeTemp.size()-2);} catch (Exception e) {lastNode=null;}int i;for(i=0;i<qiDian.jieDian.size();i++){if(!qiDian.jieDian.get(i).equals(lastNode)){jiHeTemp.add(qiDian.jieDian.get(i));if(jiHeTemp.size()==4){sum+=1;for(WangNode wangNode:jiHeTemp){System.out.print(wangNode.value+" ");}System.out.println();}else{search(qiDian.jieDian.get(i),jiHeTemp);}jiHeTemp.remove(jiHeTemp.size()-1);}}}}class WangNode{int value;List<WangNode> jieDian=new ArrayList<WangNode>();public WangNode(int value) {// TODO Auto-generated constructor stubthis.value=value;}}5条测试,其中有一条超时,我知道超时问题所在,但是不知道如何去解决,例如1-2-3-4有了就不必再寻找4-3-2-1,但是不知道怎么去解决

,离开你的那一天开始,左心房渐渐停止跳动…

onethousandpiece的专栏

相关文章:

你感兴趣的文章:

标签云: