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

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;
	}
}
相关推荐
爱coding的橙子1 小时前
每日算法刷题Day19 5.31:leetcode二分答案3道题,用时1h
算法·leetcode·职场和发展
Swift社区5 小时前
AI 的早期萌芽?用 Swift 演绎约翰·康威的「生命游戏」
游戏·蓝桥杯·swift
梁下轻语的秋缘5 小时前
每日c/c++题 备战蓝桥杯(P2240 【深基12.例1】部分背包问题)
c语言·c++·蓝桥杯
天才测试猿7 小时前
Selenium操作指南(全)
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
小天呐8 小时前
如何实现一个请求库?【面试场景题】
面试·职场和发展
进击的小白菜8 小时前
LeetCode 169:多数元素 - 摩尔投票法的精妙解法
算法·leetcode·职场和发展
花自向阳开10248 小时前
LeetCode hot100-9
算法·leetcode·职场和发展
姬公子52112 小时前
leetcode hot100刷题日记——33.二叉树的层序遍历
算法·leetcode·职场和发展
云泽80821 小时前
模块化设计,static和extern(面试题常见)
c语言·面试·职场和发展