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

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;
	}
}
相关推荐
万法若空21 小时前
【数据结构-哈希表】哈希表原理
数据结构·算法·散列表
兰令水1 天前
leecodecode【面试150】【2026.7.9打卡-java版本】
java·数据结构·leetcode·面试·职场和发展
程序员小远1 天前
接口测试之文件上传
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
2501_942389551 天前
水平姿态的总装和测试
beautifulsoup·排序算法·散列表·fastapi·启发式算法·最小二乘法
Frostnova丶1 天前
(13)LeetCode 53. 最大子数组和
算法·leetcode·职场和发展
tkevinjd2 天前
力扣437路径总和III
算法·leetcode·面试·职场和发展
Frostnova丶2 天前
(12)LeetCode 76. 最小覆盖子串
算法·leetcode·职场和发展
旧曲重听12 天前
为什么现在 RAG 越少越少提及了
数据库·程序人生·职场和发展·agent
凯瑟琳.奥古斯特2 天前
力扣1013三等分解法与C++实现
开发语言·c++·算法·leetcode·职场和发展
变量未定义~2 天前
单调栈、单调队列(模板)、子矩阵(模板)
数据结构·算法·蓝桥杯