[TYVJ 1288] 飘飘乎居士取能量块
来源:互联网 发布:升腾资讯java笔试 编辑:程序博客网 时间:2024/06/02 21:20
传送门
http://tyvj.cn/p/1288
题目大意
给定n个点间距离,以及必须走的点,询问1到n的最短路
题解
由于必须要走的点最多只有10个,全排列只有10!=3628800个
Floyd处理后,枚举这些方案比较即可
注意啊,p个点是一行的…
var w:array[0..200,0..200]of longint; z,y,x:array[0..20]of longint; i,j,k:longint; n,p,ans:longint;function min(a,b:longint):longint;begin if a>b then exit(b) else exit(a);end;procedure check;var i,a:longint;begin a:=0; for i:=1 to p-1 do inc(a,w[z[i],z[i+1]]); inc(a,w[1,z[1]]+w[z[p],n]); if a<ans then ans:=a;end;procedure dfs(a:longint);var i:longint;begin if a=p then begin check; exit; end; for i:=1 to p do if y[i]=0 then begin y[i]:=1; z[a+1]:=x[i]; dfs(a+1); y[i]:=0; end;end;begin readln(n); for i:=1 to n do begin for j:=1 to n do read(w[i,j]); readln; end; for k:=1 to n do for i:=1 to n do for j:=1 to n do w[i,j]:=min(w[i,j],w[i,k]+w[k,j]); readln(p); for i:=1 to p do read(x[i]); ans:=maxlongint; dfs(0); if p=0 then ans:=w[1,n]; writeln(ans);end.
0 0
- [TYVJ 1288] 飘飘乎居士取能量块
- TYVJ 1288 飘飘乎居士取能量块
- Tyvj P1288 飘飘乎居士取能量块
- Tyvj P1288 飘飘乎居士取能量块
- tyvj P1288 飘飘乎居士取能量块
- TYVJ1288 飘飘乎居士取能量块
- TYVJ1288 飘飘乎居士取能量块 -SilverN
- tyvj P1179 飘飘乎居士数列游戏
- Tyvj P1143 飘飘乎居士的约会
- tyvj P1143 飘飘乎居士的约会
- 伊甸园日历游戏 && 飘飘乎居士拯救MM(tyvj 1968 && 1140)
- tyvj P1517 飘飘乎居士的乌龟(最大流)
- TYVJ P1056 能量项链
- tyvj-1052 能量项链
- 飘飘乎居士的约会
- Tyvj 1056 能量项链 dp
- tyvj /noi 2010 能量采集
- P1143 飘飘乎居士的约会
- HDU1181——变形课(dfs)
- UVA1973*3用七个碎片拼成正方形,正方体的旋转和平移,即矩阵变换
- java入门代码
- C
- PHP第一季视频教程.李炎恢.学习笔记(二)(第2章 基本语法(1))
- [TYVJ 1288] 飘飘乎居士取能量块
- C#网线程里传参数的方法总结
- Codeforces Round #323(div2) 583B. Robot's Task
- 如何管理自己的测试团队提高团队的效绩?
- win764 QTCreator2.8.0+Qt Open source 4.8.5环境配置(Win7x64)
- JS数组方法汇总 ARRAY数组元素的添加和删除
- free books site
- 软件测试心理学
- kafka教程