世界冰球锦标赛(day2)(这只是一道题)

链接

这道题本质上还是找子序列问题,需要递归

但是由于数据很大,足足有40个达2^40,绝对会超时,所以我们需要用别的方法来简化

此题用到的是折半搜索,我们将40个分成前后两半,这样就是2*2^20, 少了很多

代码如下

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
typedef long long ll;
void f(int start, int end, ll current_sum, ll m, vector<ll>& sum, vector<ll>&nums) {
	if (start > end) {
		sum.push_back(current_sum);
		return;
	}

	f(start + 1, end, current_sum, m, sum,nums);

	if (current_sum + nums[start] <= m) {
		f(start + 1, end, current_sum + nums[start], m, sum, nums);
	}
}
int main() {
	ll n, m;
	cin >> n >> m;
	vector<ll>nums(n);
	for (int i = 0;i < n;i++) {
		cin >> nums[i];
	}
	vector<ll>sums_fir, sums_sec;
	int mid = n / 2;
	f(0, mid-1, 0, m, sums_fir, nums);
	f(mid ,n-1, 0, m, sums_sec, nums);
	ll count = 0;
	sort(sums_sec.begin(), sums_sec.end());
	for (ll number : sums_fir) {
		ll remain = m - number;
		auto it = upper_bound(sums_sec.begin(), sums_sec.end(), remain);
		count += it - sums_sec.begin();
	}
	cout << count;
}

递归时候,是从后往前,将所有可能数据遍历一遍 时间复杂度:O(n^(n/2))

空间复杂度:O(2*2^(n/2))

全部评论

相关推荐

一、春招的本质:一场多维度的综合竞赛春招从来不是简单的投简历-面试流程,而是一场集信息搜集能力、时间管理、策略规划和心理素质于一体的综合竞赛。与秋招相比,春招岗位数量减少约30%-40%,但竞争者构成更加复杂:既有秋招失利者,也有考研/考公后的新增力量,还有对秋招offer不满的再战者。这种“粥少僧多”的局面,要求你必须采取更加系统、更加精细的应对策略。数据显示,通过系统性方法准备春招的学生,获得满意offer的概率比随意准备者高出2.3倍。本文将为你搭建完整的春招作战系统,从认知到执行,全方位提升你的竞争力。二、春招时间线三维管理法时间维度一:宏观节奏把握(1-4月全景规划)1月-2月上旬:深度准备期简历迭代3.0版本:基于秋招反馈,针对性强化项目经验和技能描述核心技能巩固:集中突破目标岗位必需但自己薄弱的技术栈笔试高频题系统训练:每日保持2小时算法题手感2月中旬-3月:全面出击期岗位信息每日追踪:建立企业信息追踪表海投与精选结合:按“冲稳保”三档分配投递比例(建议3:4:3)面试节奏控制:合理安排面试时间,避免疲劳战4月:收尾与决策期offer比较体系化评估:建立包含薪资、发展、地域等权重的评估模型谈判技巧准备:学习薪资谈判的沟通策略备选方案启动:如有缺口,启动实习转正或暑期实习计划时间维度二:每日时间区块化将每日划分为:信息处理区块(早9:00-10:30):查看招聘网站、企业官网更新深度学习区块(上午10:30-12:00):系统性学习一门技术或完成一个项目模块笔试练习区块(下午2:00-4:00):针对性刷题,重点突破薄弱题型面试准备区块(下午4:00-6:00):模拟面试、面试问题整理、自我介绍打磨复盘规划区块(晚8:00-9:00):当日复盘,次日计划制定时间维度三:优先级动态调整系统建立岗位优先级评分表,包含:岗位匹配度(0-30分)、企业吸引力(0-25分)、薪资范围(0-20分)、面试难度预估(0-15分)、流程进度(0-10分)。每日更新分数,动态调整准备重点。三、信息战:打破不对称的四大武器武器一:信息源矩阵搭建官方渠道矩阵:企业官网招聘栏目+官方招聘公众号+官方校园招聘网站聚合平台矩阵:应届生求职网+各大招聘APP人际网络矩阵:学长学姐内推+校园就业中心+导师推荐隐藏渠道矩阵:LinkedIn目标公司员工直接联系+技术社区定向挖掘武器二:企业情报分析表为每个重点目标企业建立分析档案:企业文化与技术栈偏好近年校招生薪资范围与晋升路径笔试面试风格(编程题侧重、系统设计深度等)面试官背景偏好(学术型vs工程型)武器三:内推系统化获取整理已有的人脉资源,按公司分类技术社区(GitHub、Stack&nbsp;Overflow)通过技术交流建立弱连接校友系统精准查找+礼貌联系模板武器四:竞争情报监测意向公司的面试进度分享整理竞争对手常见准备漏洞,形成你的差异点四、策略层:差异化竞争的三级火箭一级火箭:简历精准化打击普通简历是“我会什么”,优秀简历是“我能为你解决什么”。采用PAR法则(Problem-Action-Result)重写所有项目经历:问题:原有系统存在XX性能瓶颈,QPS仅为100行动:我引入Redis集群缓存热点数据,采用异步化改造流程结果:将QPS提升至1500,服务器成本降低40%简历优化实战工具:在实践PAR法则时,可以借助专业工具来提升效率与质量。例如,使用泡泡小程序AiCV简历王,其AI功能能够智能分析你的原始经历,精准识别出可量化成果,并按照PAR结构帮你重新组织语言,确保每一段经历都击中招聘方的价值痛点,让简历在海量筛选中自动“跳出来”。二级火箭:技能组合创新不要简单堆砌技术名词,而是构建“基础技能+差异化技能+业务洞察”的组合:例如目标后台开发岗位:基础技能:Java并发编程、MySQL优化、Spring全家桶(人人都有)差异化技能:深入理解JVM调优实战经验、分布式事务解决方案对比(少数人有)业务洞察:对目标公司业务场景的技术方案思考(极少数人有)三级火箭:面试节奏掌控将面试视为一场45分钟的产品演示:前5分钟:建立连接,展示沟通能力与自信15-35分钟:核心技术考察,展示深度与逻辑35-40分钟:提问环节,展示业务思考与求职诚意最后5分钟:总结亮点,强化面试官记忆点五、执行层:可量化的每日行动系统量化指标每日追踪表日期投递数量笔试完成面试场次技术学习时长算法题数当日复盘得分示例5家2场1场3小时5道8/10分笔试自动化应对策略建立常考题型模板库(动态规划、二叉树、链表等)编写常用工具函数集(快速输入输出、调试模板)时间分配策略:简单题(15分钟)+中等题(25分钟)+难题(20分钟)面试案例库建设按公司分类整理:已问问题及最佳回答未答好问题及改进方案行为面试问题及STAR法则回答框架技术深度问题及扩展学习方向六、心理与体能:持久战的保障系统压力管理三板斧认知重构:将每次拒绝视为“不适合”而非“不优秀”进度可视化:用甘特图展示求职进度,减少不确定性焦虑支持小组:组建3-5人求职互助小组,每日同步进展体能维持计划每周至少3次30分钟有氧运动每日冥想10分钟提升专注力采用番茄工作法(25分钟工作+5分钟休息)七、特殊场景应对策略考研后如何快速切入春招两周速成计划:前7天重点突破算法与数据结构,后7天集中学习目标岗位核心技术栈简历突出学习能力:将考研培养的系统性学习能力转化为项目快速上手能力坦诚沟通策略:面试中直接说明情况,强调备考培养的韧性与抗压能力秋招offer不满意者的优化策略分析秋招不足:是技术深度不足?沟通表达问题?还是面试策略失误?针对性补强:集中1个月填补最大短板谈判筹码积累:利用现有offer作为底线,争取更优机会八、收尾阶段:从offer选择到职业起点offer四维评估模型短期维度:薪资待遇、工作地点、入职时间中期维度:团队技术氛围、直接主管背景、成长路径清晰度长期维度:行业前景、公司发展、技能可迁移性风险维度:公司稳定性、文化适应度、备选方案薪资谈判技巧市场调研充分:了解同类岗位薪资范围价值清晰表述:明确自己能带来的独特价值灵活谈判策略:薪资不满意时尝试争取签约金、额外假期等替代方案写在最后春招是一场需要系统性准备的战役,更是一场自我认知与成长的旅程。最有效的准备方法,是建立自己的求职系统,并持续迭代优化。每场面试无论结果如何,都应转化为系统的迭代输入。
春招提前批,你开始投了吗
点赞 评论 收藏
分享
joecii:如果没有工资,那可能没有工资是这家公司最小的问题了
找实习记录
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务