zoukankan      html  css  js  c++  java
  • poj 2976Dropping tests迭代法

    利用迭代法能获得更好的时间效率

    View Code
     1 #include<stdio.h>
     2 #include<math.h>
     3 #include<stdlib.h>
     4 #define N 1005
     5 #define eps 1e-6
     6 struct node
     7 {
     8     double a,b,v;
     9 };
    10 node p[N];
    11 int n,k;
    12 int cmp(const void *a,const void *b)
    13 {
    14     node c=*(node *)a;
    15     node d=*(node *)b;
    16     if(c.v>d.v)
    17     return -1;
    18     return 1;
    19 }
    20 double work(double l)
    21 {
    22     int i;
    23     for(i=0;i<n;i++)
    24     p[i].v=p[i].a-p[i].b*l;
    25     qsort(p,n,sizeof(node),cmp);
    26     double suma=0,sumb=0;
    27     for(i=0;i<n-k;i++)
    28     suma+=p[i].a,sumb+=p[i].b;
    29     return suma/sumb;
    30 }
    31 void solve()
    32 {
    33     double tmp,ans=0;
    34     while(1)
    35     {
    36         tmp=work(ans);
    37         if(fabs(tmp-ans)<eps)
    38         break;
    39         ans=tmp;
    40     }
    41     printf("%d\n",(int)(100*(ans+0.005)));
    42 }
    43 int main()
    44 {
    45     int i;
    46     while(scanf("%d%d",&n,&k)&&(n||k))
    47     {
    48         for(i=0;i<n;i++)
    49         scanf("%lf",&p[i].a);
    50         for(i=0;i<n;i++)
    51         scanf("%lf",&p[i].b);
    52         solve();
    53     }
    54     return 0;
    55 }
  • 相关阅读:
    Qt全局坐标和相对坐标
    坐标系统
    qt坐标系统见解
    Qt中QGraphics类坐标映射关系详解
    对QT多线程以及事件投递的理解
    Qt中mouseMoveEvent无效
    递归、尾递归
    末日重生
    201314
    归并排序
  • 原文地址:https://www.cnblogs.com/caozhenhai/p/2489348.html
Copyright © 2011-2022 走看看