zoukankan      html  css  js  c++  java
  • UVA 10131 Is Bigger Smarter?

    这题和hdu 1160一样。因为刚学了nlogn,所以这题也想用它,结果杯具了。因为我总是想不出weight相同时该怎么处理,以及怎么输出。在nlogn的框架下我想了N小时,最后决定换思路。后来用的是用数组记录长度与距离,结果又因为一个很小的细节又搞了一个多小时,简直就是“餐具”啊!

    这个细节是 if(** > **) f[i] = f[j] + 1;  少了一个 && ……

     1 #include<stdio.h>
    2 #include<algorithm>
    3 #include<string.h>
    4 using namespace std;
    5 typedef struct
    6 {
    7 int num,wt,iq;
    8 }Ele;
    9 Ele ele[1005];
    10 int p[1005],f[1005],len;
    11 bool cmp(Ele a,Ele b)
    12 {
    13 if(a.wt == b.wt) return a.iq < b.iq;
    14 else return a.wt > b.wt;
    15 }
    16 void prians(int a)
    17 {
    18 printf("%d\n",ele[a].num);
    19 if(p[a] != -1)
    20 prians(p[a]);
    21 }
    22 int main()
    23 {
    24 int a,b,i,j,t,start,cnt=0;
    25 while(scanf("%d %d",&a,&b) != EOF)
    26 {
    27 ele[cnt].wt = a;
    28 ele[cnt].iq = b;
    29 ele[cnt].num = cnt+1;
    30 cnt++;
    31 }
    32 sort(ele,ele+cnt,cmp);
    33 for(i = 1; i < cnt; i++)
    34 f[i] = 1;
    35 memset(p,-1,sizeof(p));
    36 len = 1;
    37 start = 0;
    38 for(i = 1; i < cnt; i++)
    39 for(j = 0; j < i; j++)
    40 if(ele[j].wt != ele[i].wt && ele[i].iq > ele[j].iq && f[j]+1 > f[i])
    41 {
    42 f[i] = f[j]+1;
    43 p[i] = j;
    44 if(f[i] > len)
    45 len = f[i],start = i;
    46 }
    47 printf("%d\n",len);
    48 prians(start);
    49 return 0;
    50 }
  • 相关阅读:
    Dynamic CRM 2013学习笔记(四十二)流程5
    Dynamic CRM 2013学习笔记(四十一)流程4
    Dynamic CRM 2013学习笔记(四十)流程3
    Dynamic CRM 2013学习笔记(三十九)流程2
    Dynamic CRM 2013学习笔记(三十八)流程1
    Dynamic CRM 2013学习笔记(三十七)自定义审批流7
    STL
    Step by Step iOS Project In Action
    STL
    STL
  • 原文地址:https://www.cnblogs.com/lzxskjo/p/2431037.html
Copyright © 2011-2022 走看看