蓝桥杯备考-----》前缀和+哈希表之连续自然数和

M是2e6级别的,我们如果N平方必然是过不了滴

当然,我们枚举的时候并不需要枚举那么多,我们只需要枚举M的一半儿就行了

我们用前缀和,提前把0下标标记为0 ,如果fi刚好是sum的话,就输出1到i

如果fi不是sum的话,我们用mp寻找一下有没有 fi-sum 的数,如果有的话,我们输出mpf\[i-sum]+1到i

好的,我们来实现一下代码

cpp 复制代码
#include <iostream>
#include <unordered_map>
using namespace std;
typedef long long ll;
unordered_map <ll,int> mp;
ll sum;
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	ll m;cin >> m;
	mp[0]=0;
	for(int i = 1;i<=m/2+1;i++)
	{
		sum+=i;
		if(mp.count(sum-m))
		{
			cout << mp[sum-m] +1 << " " <<i << endl;
		}
		mp[sum]=i;
	}
}
相关推荐
Nil2083 分钟前
leetcode 230二叉搜索树中第k小的元素
算法·leetcode·职场和发展
fb_123458 分钟前
Shell脚本零基础通关教程|条件语句+函数+全类型循环(企业实战+面试真题)
面试·职场和发展
官乐14 小时前
AI面试指南(多agent开发流程)
人工智能·面试·职场和发展
程序员三藏14 小时前
自动化测试用例编写详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
跟我一起学测试呀15 小时前
软件测试面试总结,备战金九银十
面试·职场和发展
Nil20815 小时前
leetcode 98验证二叉搜索树
算法·leetcode·职场和发展
时针滴滴答啊20 小时前
最大子数组和
算法·leetcode·职场和发展
重生之后端学习21 小时前
15. 三数之和[中等]✅
java·数据结构·算法·leetcode·职场和发展
嵌入式阿蔡1 天前
面试高频考点 01:volatile / 中断 / 堆栈 八股精讲
java·面试·职场和发展·嵌入式实时数据库
Nil2081 天前
leetcode 102二叉树的层序遍历
算法·leetcode·职场和发展