POJ 2111 DP+记录路径
2016-10-31 10:35
246 查看
题意:
思路:
类似滑雪
思路:
类似滑雪
//By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define N 444 int n,ans=-1,s[N*N],map ,cnt,f ,xx[]={2,2,1,1,-1,-1,-2,-2},yy[]={1,-1,2,-2,2,-2,1,-1}; struct Node{int x,y,w;Node(){}Node(int xx,int yy,int ww){x=xx,y=yy,w=ww;}}node[N*N],move ,jy; bool cmp(Node a,Node b){return a.w>b.w;} int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) scanf("%d",&map[i][j]),node[++cnt]=Node(i,j,map[i][j]); sort(node+1,node+1+cnt,cmp); for(int i=1;i<=cnt;i++) for(int j=0;j<8;j++){ int tx=node[i].x+xx[j],ty=node[i].y+yy[j]; if(tx<=0||ty<=0||tx>n||ty>n||map[tx][ty]>map[node[i].x][node[i].y])continue; if(f[tx][ty]<f[node[i].x][node[i].y]+1){ f[tx][ty]=f[node[i].x][node[i].y]+1; move[tx][ty]=Node(node[i].x,node[i].y,node[i].w); } else if(f[tx][ty]==f[node[i].x][node[i].y]+1&&move[tx][ty].w>node[i].w) move[tx][ty]=Node(node[i].x,node[i].y,node[i].w); if(ans<f[tx][ty])ans=f[tx][ty],jy=Node(tx,ty,map[tx][ty]); else if(ans==f[tx][ty]&&jy.w>map[tx][ty])jy=Node(tx,ty,map[tx][ty]); } if(!jy.w){ int minn=0x3fffffff; for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)minn=min(minn,map[i][j]); printf("1\n%d\n",minn);return 0; } while(1){ s[++s[0]]=jy.w; if(!f[jy.x][jy.y])break; jy=move[jy.x][jy.y]; } for(int i=0;i<=s[0];i++)printf("%d\n",s[i]); }
相关文章推荐
- POJ 2111 DP+记录路径
- POJ 1141 Brackets Sequence (区间dp 记录路径)
- POJ 1141 Brackets Sequence(区间DP记录路径)
- poj 1141【dp--记录路径】
- (常复习)poj 1015 dp+记录dp路径+转变最优子结构+区间映射
- POJ--1141--Brackets Sequence--记录DP路径
- POJ 2264 Advanced Fruits DP+记录路径
- POJ 3373 Changing Digits(记录路径的dp)
- poj 1141 Brackets Sequence(区间DP记录路径)
- POJ 1141Brackets Sequence (区间dp记录路径)
- POJ 1141 Brackets Sequence(记录路径的dp)
- poj 1141 Brackets Sequence 【区间DP+路径记录】
- poj1141 Brackets Sequence(区间dp记录路径问题)
- poj 2250 Compromise (DP-LCS 记录路径)
- poj 1141 (区间dp记录路径问题)
- POJ 1142 Brackets Sequence(区间dp,记录路径,还原括号匹配)
- poj 1734 Sightseeing trip_ 最小环记录路径
- 记录路径dp-4713-Permutation
- POJ 1787 Charlie's Change(多重背包+记录路径)
- POJ 3311 Hie with the Pie(DP状态压缩+最短路径)