第二档部分分为什么是背包求方案数啊,背包方案数求的不应该是最优方案的方案数嘛

P4799 [CEOI2015 Day2] 世界冰球锦标赛

@[死在水中的鱼](/user/333800) 您说的是测试点5-7吧 ```cpp 如果总票价不超过预算,他有多少种观赛方案 ``` 只要不超过就行了
by GaryGe @ 2022-11-12 12:30:11


@[GaryGe](/user/396064) 能不能顺便问一下第一篇题解里面a数组和b数组以及dfs状态是什么啊
by qip101 @ 2022-11-12 12:36:46


@[死在水中的鱼](/user/333800) 思路就是用两个dfs分别求出前20个和后20个能组成的和,分别存入两个数组,再排序,对于第一个数组二分能在第二个数组中取到的个数,累加起来就行了,他写的有点复杂,其实就是这个 ```cpp void dfs1(ll u,ll sum) { if (u>n/2) { b[++cntb]=sum; return; } dfs1(u+1,sum); dfs1(u+1,sum+a[u]); } ```
by GaryGe @ 2022-11-12 12:41:04


|