zoukankan      html  css  js  c++  java
  • HDU 1160 FatMouse's Speed ——(DP)

      又是那个lis变形的题目。

      但是不好定义严格的比较符号,因此只能n^2去做。值得注意的一个是要先排序,因为可能可以先选后面的再选前面的,先排序的话就能够避免这个问题。但是要注意,因为要输出路径,所以要记录之前的id。

      代码如下:

     1 #include <stdio.h>
     2 #include <algorithm>
     3 #include <string.h>
     4 #include <stack>
     5 using namespace std;
     6 const int N = 1000 + 5;
     7 const int inf = 0x3f3f3f3f;
     8 
     9 struct node
    10 {
    11     int a,b,id;
    12     bool operator < (const node & temp) const
    13     {
    14         return a == temp.a ? b > temp.b : a < temp.a;
    15     }
    16 }p[N];
    17 struct state
    18 {
    19     int now,pre,len;
    20 }dp[N];
    21 
    22 int main()
    23 {
    24     int n = 0;
    25     int a,b;
    26     while(scanf("%d%d",&a,&b) == 2)
    27     {
    28         n++;
    29         p[n] = (node){a,b,n};
    30         //if(n == 9) break;
    31     }
    32     sort(p+1,p+1+n);
    33     for(int i=1;i<=n;i++)
    34     {
    35         int pos = -1;
    36         for(int j=1;j<i;j++)
    37         {
    38             if(!(p[j].a < p[i].a && p[j].b > p[i].b)) continue;
    39             if(pos == -1) pos = j;
    40             else if(dp[j].len > dp[pos].len) pos = j;
    41         }
    42         if(pos == -1) dp[i] = (state){i,-1,1};
    43         else dp[i] = (state){i,pos,dp[pos].len + 1};
    44     }
    45     int ind = 1;
    46     for(int i=2;i<=n;i++)
    47     {
    48         if(dp[i].len > dp[ind].len) ind = i;
    49     }
    50     stack<int> S;
    51     int temp = ind;
    52     while(ind != -1)
    53     {
    54         S.push(ind);
    55         ind = dp[ind].pre;
    56     }
    57     printf("%d
    ",S.size());
    58     while(!S.empty())
    59     {
    60         int x = S.top(); S.pop();
    61         printf("%d
    ",p[x].id);
    62     }
    63     return 0;
    64 }
  • 相关阅读:
    STM32位带操作
    url参数 加密
    object.key 对象的键排序 可能出现的问题
    在vue项目中 获取容器的高度
    navigator 判断移动端是Android还是iOS
    Nginx下载地址
    Sublime Text3快捷键大全
    鼠标拖着元素飞
    g6 cavans
    vue img标签图片加载时 闪烁
  • 原文地址:https://www.cnblogs.com/zzyDS/p/6402673.html
Copyright © 2011-2022 走看看