BZOJ 4800 [Ceoi2015]Ice Hockey World Championship

原创 2018年04月15日 22:06:50

题目中文,不解释,(这个ceoi貌似是欧洲的emm)

一眼背包,两眼看到longlong的数据,三眼果断弃掉dp

正解为折半暴搜,先搜前n/2小,再搜后n/2

然后一边暴搜后n/2,一边统计方案数

思路讲不清emmmmm,日后更新

#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
long long int m,cost[50];
int n,mid,lim,cnt=0;
long long int ans[2000000],que=0;
int dfs1(int x,long long int sum)
{
    if (sum>m) return 0;
    if (x==lim+1)
    {
        ans[++cnt]=sum;
        return 0;
    }
    dfs1(x+1,sum);
    dfs1(x+1,sum+cost[x]);
    return 0;
}
int dfs2(int x,long long int sum)
{
    if (sum>m) return 0;
    if (x==lim+1)
    {
        if (ans[1]+sum>m) return 0;
        int l=1,r=cnt;int md=(l+r)/2,tot=0;
        while (l<=r)
        {
            md=(l+r)/2;
            if (sum+ans[md]<=m) tot=md,l=md+1;
            else r=md-1;
        }
        que+=tot;
        return 0;
    }
    dfs2(x+1,sum+cost[x]);
    dfs2(x+1,sum);
    return 0;
}
int main()
{
    cin>>n>>m;
    for (int i=1;i<=n;i++) cin>>cost[i];
    lim=mid=n/2;
    dfs1(1,0);
    sort(ans+1,ans+cnt+1);
    lim=n;
    dfs2(mid+1,0);
    cout<<que;
    return 0;
}

版权声明: https://blog.csdn.net/ACerAndAKer/article/details/79954060

bzoj4800: [Ceoi2015]Ice Hockey World Championship

meeting in the middle
  • FSAHFGSADHSAKNDAS
  • FSAHFGSADHSAKNDAS
  • 2017-05-03 20:07:44
  • 506

BZOJ 4800: [Ceoi2015]Ice Hockey World Championship

4800: [Ceoi2015]Ice Hockey World ChampionshipTime Limit: 10 Sec Memory Limit: 256 MB Submit: 482 ...
  • ywq12138
  • ywq12138
  • 2017-10-25 17:03:32
  • 69

BZOJ 4800 [Ceoi2015]Ice Hockey World Championship ……

Description 有n个物品,m块钱,给定每个物品的价格,求买物品的方案数。 Input 第一行两个数n,m代表物品数量及钱数 第二行n个数,代表每个物品的价格 n...
  • ThinFatty
  • ThinFatty
  • 2017-08-24 18:33:33
  • 88

bzoj [4800] [Ceoi2015]Ice Hockey World Championship

此题可以用中间相遇法做,详细可以看这里。 我们将物品分为两半,求出两块中任意组合物品二不超过m的方案存在两个数组中。 用dfs暴力即可。 然后将后数组排序,再对前数组中的res[i]用m减去后剩...
  • qq_33208960
  • qq_33208960
  • 2017-03-30 18:56:33
  • 342

bzoj 4800: [Ceoi2015]Ice Hockey World Championship meet in the middle

题意有n个物品,m块钱,给定每个物品的价格,求买物品的方案数。 n
  • qq_33229466
  • qq_33229466
  • 2017-04-25 20:22:42
  • 332

4800: [Ceoi2015]Ice Hockey World Championship

4800: [Ceoi2015]Ice Hockey World Championship Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 257...
  • CRZbulabula
  • CRZbulabula
  • 2017-04-10 18:42:19
  • 104

[BZOJ 4800][Ceoi2015]Ice Hockey World Championship:双向搜索

点击这里查看原题双向搜索模板题,n/2
  • SmallSXJ
  • SmallSXJ
  • 2017-04-06 14:47:11
  • 210

[BZOJ]4800: [Ceoi2015]Ice Hockey World Championship dfs+二分

dfs+二分
  • baidu_36797646
  • baidu_36797646
  • 2017-10-31 15:10:05
  • 97

【BZOJ】4800 [Ceoi2015]Ice Hockey World Championship 折半查找

题目传送门 上次省选就有大佬提过折半查找,但是因为我过于蒟蒻,所以一直都没有去学习这种算法。 今天突发奇想,开了一发脑洞,学习一下这种算法。 这题的折半查找思想是非常好的,可以优化许多题目,可以把时间...
  • lyfsb
  • lyfsb
  • 2017-07-01 14:04:25
  • 128

BZOJ 4800: [Ceoi2015]Ice Hockey World Championship meet_in_the_middle

4800: [Ceoi2015]Ice Hockey World Championship Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 439...
  • BlackJack_
  • BlackJack_
  • 2017-07-26 20:37:22
  • 159
收藏助手
不良信息举报
您举报文章:BZOJ 4800 [Ceoi2015]Ice Hockey World Championship
举报原因:
原因补充:

(最多只允许输入30个字)