璟雯院

珺璟如晔,雯华若锦

用户工具

站点工具


icpc:problems:luogup1147
problems
名称连续自然数和
题目编号P1147
题目链接luogu.com.cn/…
来源Luogu
算法分类前缀和, 差分, 双指针
难易程度容易

连续自然数和

想法

先计算1至n的前缀和,使用双指针维护一个差分,使得两个指针指向的区间始终小于等于n,当等于n时输出答案。

代码实现

#include<cstdio>
const int N = 2e6+10;
long long int line[N];
int main() {
	int n;
	scanf("%d", &n);
	for(int i=1; i<=n; i++) {
		line[i] = line[i-1] + i;
	}
	int last = 1;
	for(int i=1; i<n; i++) {
		while(line[i] - line[last] > n)last++;
		if(line[i] - line[last] == n)
			printf("%d %d\n", last+1, i);
	}
	return 0;
}
/app/www/public/data/pages/icpc/problems/luogup1147.txt · 最后更改: 2024/02/18 15:06 由 温婕莺