zoukankan      html  css  js  c++  java
  • BZOJ 4800 Ice Hockey World Championship

    折半。用一边的去查另一边。

    不知不觉500了啊。。。

    #include<iostream>
    #include<cstdio>
    #include<cstdio>
    #include<algorithm>
    #define maxs 1500050
    #define maxn 45
    using namespace std;
    long long n,m,p[maxn],tab[2][maxs],ans=0,n1;
    void dfs(long long now,long long top,long long ret,long long type)
    {
        if (now==top)
        {
            tab[type][++tab[type][0]]=ret;
            return;
        }
        dfs(now+1,top,ret+p[now],type);
        dfs(now+1,top,ret,type);
    }
    int main()
    {
        scanf("%lld%lld",&n,&m);
        for (long long i=1;i<=n;i++) scanf("%lld",&p[i]);
        if (n<=1) {printf("%lld
    ",(p[1]<=m)+1LL);return 0;}
        n1=n>>1;
        dfs(1,n1+1,0,0);dfs(n1+1,n+1,0,1);
        sort(tab[0]+1,tab[0]+tab[0][0]+1);
        sort(tab[1]+1,tab[1]+tab[1][0]+1);
        for (long long i=1;i<=tab[0][0];i++)
        {
            long long l=1,r=tab[1][0],ret=0;
            while (l<=r)
            {
                long long mid=(l+r)>>1;
                if (tab[1][mid]<=m-tab[0][i]) {ret=mid;l=mid+1;}
                else r=mid-1;
            }
            ans+=ret;
        }
        printf("%lld
    ",ans);
        return 0;
    }
  • 相关阅读:
    委托
    文件流
    关于.netFramework概述
    深拷贝与浅拷贝
    序列化与反序列化
    关于可空值类型
    正则表达式
    基于WF4.0的公文管理系统
    Mahout中相似度计算方法介绍
    Mahout源码目录说明
  • 原文地址:https://www.cnblogs.com/ziliuziliu/p/6646107.html
Copyright © 2011-2022 走看看