P4799 [CEOI2015 Day2]世界冰球锦标赛 (双端搜索)
[CEOI2015 Day2]世界冰球锦标赛 - 洛谷
对于n<=40的情况,正常暴搜无疑要寄,那么我们可以分别从前一半和后一半开始搜,再对所搜的内容排序后,每一个在后面里二分出符合的答案。
和这题很像。
醉漾轻舟,信流引到花深处 (二分 折半搜索)_Jack_00_的博客-CSDN博客
/*keep on going and never give up*/
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ll long long
#define fast std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
const int maxn=2e6+10;
const int mod=1e9+7;
int n,m,ans,a[maxn];
vector<int>v1,v2;
void dfs(int l,int r,int sum,vector<int> &x){if(sum>m)return ;if(l>r){x.push_back(sum);return ;}dfs(l+1,r,sum+a[l],x);dfs(l+1,r,sum,x);
}
signed main(){fast cin>>n>>m;int mid=n>>1;for(int i=1;i<=n;i++) cin>>a[i];dfs(1,mid,0,v1);dfs(mid+1,n,0,v2);sort(v1.begin(),v1.end());int ans=0;for(int i=0;i<v2.size();i++)ans+=upper_bound(v1.begin(),v1.end(),m-v2[i])-v1.begin();cout<<ans;
}
P4799 [CEOI2015 Day2]世界冰球锦标赛 (双端搜索)相关推荐
- 洛谷P4799—— [CEOI2015 Day2]世界冰球锦标赛(折半搜索)
原题链接 题意: 给n个物品和对应的价格,问用不超m元的钱可以买到的物品的方案数. 思路: 折半搜索的入门题(雾.jpg) n的范围是n<=40.普通的搜索一定会TLE,考虑将物品分成两部分来搜 ...
- P4799 [CEOI2015 Day2]世界冰球锦标赛(折半搜索)
题目大意: 解题思路: 如果直接暴力(你的钱太多不允许你用背包),时间复杂度为O(240)O(2^{40})O(240)次方,但如果折半搜索可行的话,时间复杂度就为O(40∗220)O(40*2^{2 ...
- 洛谷P4799 [CEOI2015 Day2] 世界冰球锦标赛 题解
洛谷P4799 [CEOI2015 Day2] 世界冰球锦标赛 题解 题目链接:P4799 [CEOI2015 Day2] 世界冰球锦标赛 题意: 译自 CEOI2015 Day2 T1「Ice Ho ...
- 洛谷—P4799 [CEOI2015 Day2]世界冰球锦标赛题解
题目链接:P4799 [CEOI2015 Day2]世界冰球锦标赛 题目大意: 给定钱数,问要多少种观赛方案,可以一场都不看. 题解思路: 这道题要用到一种搜索方法--折半搜索.具体方法为:我们先把数 ...
- 洛谷P4799 [CEOI2015 Day2] 世界冰球锦标赛
题目链接:P4799 [CEOI2015 Day2] 世界冰球锦标赛 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 折半搜索: 1:先搜索左半边的票价和 2:再搜索右半边的票价和 ...
- P4799 [CEOI2015 Day2]世界冰球锦标赛
\(\color{#0066ff}{题目描述}\) 今年的世界冰球锦标赛在捷克举行.Bobek 已经抵达布拉格,他不是任何团队的粉丝,也没有时间观念.他只是单纯的想去看几场比赛.如果他有足够的钱,他会 ...
- P4799 [CEOI2015 Day2] 世界冰球锦标赛
知识点:双向搜索 这个是双向深搜,也是我的第一道双向搜索,所以挑了一个简单的题来写,还是比较简单的,以及要了解双向搜索是怎么降低时间复杂度的 #include <bits/stdc++.h> ...
- P4799 [CEOI2015 Day2]世界冰球锦标赛(折半暴搜)
题目很明确,不超过预算的方案数.两个直觉:1.暴搜2.dp 每个点两种状态,选或不选.... 1.可过20% 2.可过70% 正解:折半搜索(meet in the middle) 有点像以前的双向广 ...
- 【折半搜索】 洛谷 P4799 [CEOI2015 Day2]世界冰球锦标赛
我只会看题解和抄题解 普通搜索在这道题中存在的问题 一共最多有40场比赛,每一场比赛有看和不看2种选择,如果求看40场比赛一共有多少选择,最多有2^40种可能性,时间复杂度太高. 折半搜索思路 1.把 ...
最新文章
- ASP.NET MVC 5 入门教程 (2) 控制器Controller
- 用Go语言建立一个简单的区块链part6(2):交易(2)
- 天津2021年高考成绩查询入口,2021年天津高考成绩查询时间安排 什么时候出分
- ThinkPhp5 | 模块分析
- BOOST内存管理(一) --- boost::object_pool
- wamp下Apache2.4.x局域网访问403的解决办法
- 动手造轮子:实现一个简单的基于 Console 的日志输出
- lstm原文_LSTM模型与水文模型在径流模拟中的比较
- 每天Leetcode 刷题 初级算法篇-汉明距离
- B00015 C++实现的图类
- spring3.0学习之环境搭建
- vs2015卸载指南
- RS485电路及隔离技术(收藏)
- 【免费好用】节假日查询接口
- HTML+CSS+JS大作业:生态环境网站设计——环境保护主题-绿色环保 (9页) web期末作业设计网页_绿色环保大学生网页设计作业成品
- DNA序列编码中Hairpin的定义和计算
- outlook邮箱收到的附件(excel, word, ppt)不能正常打开的解决办法
- easypoi导出excel不设置样式_EasyPOI 导出excel设置边框,背景颜色,字体样式
- 女 大三,抱金砖~呵~
- 华为手机哪一款手机是鸿蒙系统_华为鸿蒙系统哪一款手机在用