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

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

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

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

如果f[i]不是sum的话,我们用mp寻找一下有没有 f[i]-sum 的数,如果有的话,我们输出mp[f[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;
	}
}
相关推荐
小徐Chao努力5 小时前
【解析】ReentrantLock锁、Syschronized锁面试点解析
java·面试·职场和发展·synchronized·
SuperW5 小时前
蓝桥杯嵌入式十五届模拟三(串口、双ADC)
单片机·职场和发展·蓝桥杯
一叶祇秋6 小时前
Leetcode - 双周赛135
算法·leetcode·职场和发展
测试界萧萧7 小时前
17:00开始面试,17:08就出来了,问的问题有点变态。。。
自动化测试·软件测试·功能测试·程序人生·面试·职场和发展
星星火柴93612 小时前
数据结构:哈希表 | C++中的set与map
数据结构·c++·笔记·算法·链表·哈希算法·散列表
夏天的阳光吖15 小时前
C++蓝桥杯实训篇(四)
开发语言·c++·蓝桥杯
小乐xiaole16 小时前
蓝桥杯 2025 C++组 省 B 题解
c++·蓝桥杯·深度优先
写不出bug的小李19 小时前
首次打蓝桥杯总结(c/c++B组)
职场和发展·蓝桥杯
SuperW1 天前
蓝桥杯嵌入式十六届赛前复习总结与准备
职场和发展·蓝桥杯
wuqingshun3141591 天前
经典算法 判断一个图中是否有环
java·开发语言·数据结构·c++·算法·蓝桥杯·深度优先