欢迎来到天天文库
浏览记录
ID:46211965
大小:152.99 KB
页数:7页
时间:2019-11-21
《携程在线测试题答案》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、携程在线测试题答案 试题一: 乘积最大: 尝试不同的拆分方法dp求解或者找规律 示例代码: include include include include definemaxn109 usingnamespacestd; longlongdp[maxn][maxn]; intsolve(intn){ longlongans=0; for(inti=0;i<=n;i++) ans=max(ans,dp[n][i]); returnans; } int
2、main(){ intn; cin>>n; for(inti=0;i<=n;i++) dp[0][i]=1; for(inti=1;i<=n;i++){ for(intj=1;j<=i;j++){ for(intk=0;k dp[i][j]=max(dp[i][j],dp[ij][k]*j); } } cout< return0; } 拼图: 经典问题广度优先搜索 示例代码: importjava.io.*; importjava.util.*;
3、 importjava.text.*; importjava.math.*; importjava.util.regex.*; importjava.util.Scanner; importjava.util.Set; importjava.util.HashSet; importjava.util.ArrayList; importjava.lang.StringBuilder; publicclassMain{ publicstaticStringdestNumbers=432156780;
4、 publicstaticSetset=newHashSet(); publicstaticint[]moveTable=newint[]{12,14,10,13,15,11,5,7,3}; publicstaticArrayListgetNextMoveList(NodepNode){ intposition=pNode.numbers.indexOf(0); intmoveStatus=moveTable[position]; ArrayListcNodes=newArrayList(); for(intsta
5、tus=1;status<=8;status=status<<1){ if((moveStatusstatus)>0){ char[]charNumbers=pNode.numbers.toCharArray(); intswitchPosition=0; if(status==1){ switchPosition=position3; }elseif(status==2){ switchPosition=position1; }elseif(status==4){ switchPosition=po
6、sition+1; }elseif(status==8){ switchPosition=position+3; } charNumbers[position]=charNumbers[switchPosition]; charNumbers[switchPosition]='0'; Strings=String.valueOf(charNumbers); if(set.contains(Integer.valueOf(s))){ set.add(Integer.valueOf(s)); Noden=
7、newNode(pNode,s,charNumbers[position]); cNodes.add(n); } } } returncNodes; } staticintgetResult(Nodenode){ Stringresult=; while(node.parentNode=null){ result+=node.currentNum; node=node.parentNode; } returnnewStringBuffer(result).reverse().t
8、oString().length(); } staticintrun
此文档下载收益归作者所有