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

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;
	}
}
相关推荐
imDwAaY3 小时前
Redis 哈希表如何边扩容边服务?讲透渐进式 Rehash
redis·哈希算法·散列表
Dream it possible!4 小时前
蓝桥杯_翻转_C++
c++·算法·蓝桥杯
ychqsq15 小时前
207.炸酱面
经验分享·职场和发展
JAVA面经实录91719 小时前
线上故障标准处理流程【完整版|面试背诵+生产落地】
java·面试·职场和发展
yuanxi20019 小时前
青海共和百万千瓦光伏光热项目并网发电:大客户销售如何用价值力抓住能源大单
大数据·职场和发展·能源·创业创新·学习方法
ychqsq1 天前
206.归程
经验分享·职场和发展
小南家的青蛙1 天前
PMP刷题笔记
职场和发展·pmp考试
imDwAaY1 天前
Redis Set 如何节省内存?从整数集合到哈希表的设计取舍
数据结构·redis·散列表
YangYang9YangYan1 天前
2027 秋招|大数据管理与应用 企业数字化岗位面试高频问题拆解与求职准备
面试·职场和发展
ychqsq1 天前
204.现场
经验分享·职场和发展