• bzoj 1816: [Cqoi2010]扑克牌


     1 #include<cstdio>
     2 #include<iostream>
     3 using namespace std;
     4 int l,r,m,n,a[60],ans;
     5 bool pan(int x)
     6 {
     7     int a1=min(x,m);
     8     for(int i=1;i<=n;i++)
     9       if(a[i]<x)
    10         {
    11             a1-=x-a[i];
    12             if(a1<0)
    13               return 0;
    14         }
    15     return 1;
    16 }
    17 int main()
    18 {
    19     scanf("%d%d",&n,&m);
    20     for(int i=1;i<=n;i++)
    21       scanf("%d",&a[i]);
    22     l=0;
    23     r=1000000000;
    24     for(;l<=r;)
    25       {
    26         int mid=(l+r)>>1;
    27         if(pan(mid))
    28           {
    29             l=mid+1;
    30             ans=mid;
    31             }
    32         else
    33           r=mid-1;
    34       }
    35     printf("%d
    ",ans);
    36     return 0;
    37 }

    二分答案判断是否可行。

    其实我还有一种想法,只是一直没对,以后要对拍一下。

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<algorithm>
     4 using namespace std;
     5 long long a[1000000],n,m,sum,q1=0x7ffffffffLL,q2=0x7ffffffffLL;
     6 bool f;
     7 int main()
     8 {
     9     scanf("%lld%lld",&n,&m);
    10     for(int i=1;i<=n;i++)
    11       scanf("%lld",&a[i]);
    12     sort(a+1,a+n+1);
    13     for(int i=2;i<=n;i++)
    14       {
    15         if(m-(i-1)*(a[i]-a[i-1])<0)
    16           {                                                                                                                                                           
    17             f=1;
    18             q1=m/(i-1)+a[i-1];
    19           }
    20         m-=(i-1)*(a[i]-a[i-1]);
    21         if(sum+(i-1)*(a[i]-a[i-1])>a[i])
    22           {
    23             f=1;
    24             q2=(sum-(i-1)*a[i-1])/(2-i);
    25           }
    26         if(f)
    27           break;
    28         sum+=(i-1)*(a[i]-a[i-1]);
    29       }
    30     printf("%lld",min(a[n],min(q1,q2)));
    31     return 0;
    32 }
  • 相关阅读:
    javascript基础
    html基础
    css基础
    django-session和cookie
    rest架构
    django-models
    django-templates
    Alignment
    ural 1225.Flags
    ural 1009. K-based Numbers
  • 原文地址:https://www.cnblogs.com/xydddd/p/5277584.html
Copyright © 2020-2023  润新知