zoukankan      html  css  js  c++  java
  • POJ 2111 DP+记录路径

    题意:
    这里写图片描述
    思路:
    类似滑雪

    //By SiriusRen
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    #define N 444
    int n,ans=-1,s[N*N],map[N][N],cnt,f[N][N],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[N][N],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
    %d
    ",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
    ",s[i]);
    }

    这里写图片描述

  • 相关阅读:
    (转载)构建public APIs与CORS
    SpringMVC 参数注入
    java删除文件夹
    idea 自动提示生成 serialVersionUID
    JSP自定义tag
    gradle中使用嵌入式(embedded) tomcat, debug 启动
    spring in action 4th --- quick start
    Date, TimeZone, MongoDB, java中date的时区问题
    spring boot 添加拦截器
    HTTP status code
  • 原文地址:https://www.cnblogs.com/SiriusRen/p/6532186.html
Copyright © 2011-2022 走看看