USACO 5.4 Canada Tour dp
来源:互联网 发布:河北网络干部学院辅助 编辑:程序博客网 时间:2024/05/22 14:44
把返回的路线反向,那么整条路线就变成了两条不相交的从起点到终点的路线。这样我们可以用DP解决。
状态设定
f[i,j] 为假定的甲乙两人,甲走到第i个城市,乙走到第j个城市时,两人走过的城市数目的和。
初始状态
f[1,1]=1
状态转移方程
f[j,i]=f[i,j]=max{f[i,k]+1}(k到j存在飞机航线,以及f[i,k]>0,就是说存在f[i,k]的走法,1<=k<j
交换甲乙,则肯定有f[j,i]=f[i,j]。
代码:
{ID: ymebegi1PROG: tourLANG: PASCAL}var n,m,i,j,k,x,y,ans:longint; c:char; s:string; nam:array[1..100] of string; a,f:array[1..100,1..100] of longint;procedure dfs(x:longint);var i:longint;begin for i:=x+1 to n do if a[x,i]=1 then begin f[x,i]:=1; dfs(i); for j:=i+1 to n do if f[i,j]+1>f[x,j] then f[x,j]:=f[i,j]+1; end;end;begin assign(input,'tour.in'); assign(output,'tour.out'); reset(input); rewrite(output); readln(n,m); for i:=1 to n do readln(nam[i]); for i:=1 to m do begin read(c); s:=''; while c<>' ' do begin s:=s+c; read(c); end; for j:=1 to n do if s=nam[j] then begin x:=j; break; end; readln(s); for j:=1 to n do if s=nam[j] then begin y:=j; break; end; a[y,x]:=1; a[x,y]:=1; end; f[1,1]:=1; for i:=1 to n-1 do for j:=i+1 to n do begin for k:=1 to j-1 do if (a[k,j]=1)and(f[i,k]>0)and(f[i,k]+1>f[i,j]) then f[i,j]:=f[i,k]+1; f[j,i]:=f[i,j]; end; ans:=1; for i:=1 to n-1 do if (a[i,n]=1)and(f[i,n]>ans) then ans:=f[i,n]; writeln(ans); close(input); close(output);end.
0 0
- USACO 5.4 Canada Tour dp
- USACO Section 5.4 Canada Tour - DP..
- usaco 5.4 Canada Tour(双线程DP)
- USACO Section 5.4 Canada Tour
- usaco 5.4.1 Canada Tour
- usaco training 5.4.2 Canada Tour 题解
- usaco Canada Tour
- USACO Canada Tour 解题报告
- C++&Python——【USACO 5.4.1】——Canada Tour
- Canada Tour
- usaco 5.4 Betsy's Tour(插头DP一条回路)
- ?|USACO 5.4.4|Betsy's Tour|漫游小镇|插头DP
- USACO5.4.1 Canada Tour (tour)
- USACO5.4.1 Canada Tour(tour)
- usaco5.4.1 Canada Tour
- [usaco] 5.4.4 Betsy's Tour
- USACO Section 5.4 Betsy's Tour
- [USACO 5.4.2 tour]解题报告
- [C语言]查找链表的中间元素
- 各种排序算法的总结和比较
- [从头学数学] 第88节 折线统计图
- codeforces626E.Simple Skewness(三分)
- SAP外向交货单中的批次拆分应用于免费货物的小问题
- USACO 5.4 Canada Tour dp
- 初识 TextKit
- 海信智能电视如何看电视直播
- 整理github上的优秀开源项目-不定期更新
- 比较Make和CMake
- 百度编辑器ueditor的简单使用
- BZOJ1138: [POI2009]Baj 最短回文路
- UICollectionView + UIKit Dynamics
- HDU 1157 Who's in the Middle