zoukankan      html  css  js  c++  java
  • hdu 1160 FatMouse's Speed(dp)

    http://acm.hdu.edu.cn/showproblem.php?pid=1160

    #include <algorithm>
    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <queue>
    using namespace std;
    struct Node
    {
        int w,s,id,fa;
    };
    Node mice[1000+10];
    int dp[1000+10];
    
    int cmp(Node a,Node b)
    {
        return a.w<b.w;
    }
    
    int main()
    {
        int i,j,k;
        int cnt=1;
        int t1,t2;
        int ans,ansn;
        while(scanf("%d%d",&t1,&t2)!=EOF)
        {
            if(t1==-1) break;
            mice[cnt].w=t1;
            mice[cnt].s=t2;
            mice[cnt].id=cnt;
            cnt++;
        }
        sort(mice+1,mice+cnt,cmp);
        ans=mice[cnt-1].id;
        ansn=1;
        for(i=1;i<cnt;i++)
        {
            mice[i].fa=i;
            dp[i]=1;
        }
        for(i=cnt-2;i>=1;i--)
        {
            for(j=i+1;j<cnt;j++)
            {
                if(dp[j]+1>dp[i]&&mice[i].w<mice[j].w&&mice[i].s>mice[j].s)
                {
                    dp[i]=dp[j]+1;
                    mice[i].fa=j;
                }
            }
            if(dp[i]>ansn) {ans=i;ansn=dp[i];}
        }
    
        /*
        for(i=1;i<cnt;i++)
        {
            printf("%d %d %d %d
    ",mice[i].w,mice[i].s,dp[i],mice[i].fa);
        }*/
        printf("%d
    ",ansn);
        while(mice[ans].fa!=ans)
        {
            printf("%d
    ",mice[ans].id);
            ans=mice[ans].fa;
        }
        printf("%d
    ",mice[ans].id);
        return 0;
    }
    

      

  • 相关阅读:
    calc PI
    c# 设置水印,消除水印
    设置windows10 背景颜色
    C# 获取当前路径
    反编译工具
    c# 窗口API,以及全屏锁定一些tips
    c# 几种singleton 实现
    List<T> JIT 分配策略
    软件工程
    mariaDB 安装/卸载+启动/关闭 服务
  • 原文地址:https://www.cnblogs.com/sola1994/p/4346083.html
Copyright © 2011-2022 走看看