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

    这是一道Special Judge的题目,查了一下

    定义:一个题目可以接受多种正确答案,即有多组解的时候,题目就必须被Special Judge.
    Special Judge程序使用输入数据和一些其他信息来判答你程序的输出,并将判答结果返回.

     

    题目刚开始觉得挺简单的,后来做着做着就有可多问题,还是做题少啊。。。

    思路比较简单,按重量W排序,之后去求速度V的下降子序列

    自己写的比较有条理、看代码注释吧

      题目传送门

     1 #include<stdio.h>
     2 #include<string.h>
     3 typedef struct {
     4     int w,s,old;      //old存储排序前的序号,输出的时候用
     5 }mice;
     6 mice m[1001];
     7 int flag[1001];
     8 int pre[1001];
     9 
    10 int main()
    11 {
    12     int n,i=1,j,k,max;
    13     mice temp;
    14     while(scanf("%d%d",&m[i].w,&m[i].s)==2)
    15     {
    16         m[i].old = i;
    17         i++;
    18     }
    19     n = i-1;
    20     for(i=1;i<=n-1;i++)
    21     {
    22         k = i;
    23         for(j=i+1;j<=n;j++)
    24             if(m[k].w>m[j].w) k = j;
    25         if(k!=i)
    26         {
    27             temp = m[k];
    28             m[k] = m[i];
    29             m[i] = temp;
    30         }
    31     }
    32     for(i=1;i<=n;i++)
    33         flag[i] = 1;
    34     memset(pre,0,sizeof(pre));
    35     for(i=n-1;i>=1;i--)
    36         for(j=i+1;j>=1;j--)
    37             if(m[i].w>m[j].w&&m[i].s<m[j].s)   //不下降子序列核心
    38             {
    39                 if(flag[j]<flag[i]+1)
    40                 {
    41                     flag[j] = flag[i]+1;
    42                     pre[j] = i;
    43                 }
    44             }
    45     max = 0;
    46     k = 0;
    47     for(i=1;i<=n;i++)
    48     {
    49         if(max<flag[i]) 
    50         {
    51             max = flag[i];
    52             k = i;
    53         }
    54     }
    55     printf("%d\n",max);
    56     while(k)
    57     {
    58         printf("%d\n",m[k].old);   //输出原序号
    59         k = pre[k];
    60     }
    61 
    62     return 0;
    63 }

     

  • 相关阅读:
    二:数组去重
    一:JS 数组对象根据相同key合并成新的数组对象(将一维数组转为多维数组)
    滑动scroll没有效果
    品字布局占满全屏
    js计算器
    html样式初始化
    js计算器
    js邮箱验证
    js菱形
    js实现金字塔图形
  • 原文地址:https://www.cnblogs.com/quantumplan/p/3073267.html
Copyright © 2011-2022 走看看