P1147连续自然数和
洛谷1147 连续自然数和
题目描述
对一个给定的自然数M,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为M。
例子:1998+1999+2000+2001+2002 = 10000,所以从1998到2002的一个自然数段为M=10000的一个解。
输入输出格式
输入格式:
包含一个整数的单独一行给出M的值(10 <= M <= 2,000,000)。
输出格式:
每行两个自然数,给出一个满足条件的连续自然数段中的第一个数和最后一个数,两数之间用一个空格隔开,所有输出行的第一个按从小到大的升序排列,对于给定的输入数据,保证至少有一个解。
输入输出样例
输入样例1:
combo.in
10000
输出样例1:
combo.out
18 142
297 328
388 412
1998 2002
洛谷1147
在学校机房写的
把在学校的思路写下
首先,第一个想的是枚举,但是明显会TLE,于是我先列了下
ANS=i+i+1+i+2+...+i+j
=ij+1+2+...+j
然后把1+..+j存储到数组f[j]中,那么就可以得到:
ANS=ij+A[j]
这个应该是哈希表吧?
于是得到程序
program p1147;
type
LL=longint;
var
j,n,i:LL;
f:array[0..2020]of LL;
procedure init;
var
i:LL;
begin
f[0]:=0;
for i:=1 to 2000 do f[i]:=f[i-1]+i;
end;
begin
assign(input,'p1147.in');
assign(output,'p1147.out');
reset(input);
rewrite(output);
readln(n);
init;
for i:=1 to n div 2 do
begin
j:=round(n/i);
if j>2000 then j:=2000;
while j>0 do
begin
if f[j-1]+j*i=n
then begin
if i=1 then begin
writeln(0,' ',i+j-1);
writeln(1,' ',i+j-1);
end
else writeln(i,' ',i+j-1);
break;
end;
dec(j);
end;
end;
close(input);
close(output);
end.
P1147连续自然数和的更多相关文章
- P1147 连续自然数和
P1147 连续自然数和 题目描述 对一个给定的自然数 M ,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为 M . Solution 两点问题 弄两个点 \(l,r\) , 因为前缀和 ...
- 洛谷——P1147 连续自然数和
P1147 连续自然数和 题目描述 对一个给定的自然数M,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为M. 例子:1998+1999+2000+2001+2002 = 10000,所以 ...
- 洛谷 P1147 连续自然数和
洛谷 P1147 连续自然数和 看到dalao们的各种高深方法,本蒟蒻一个都没看懂... 于是,我来发一篇蒟蒻友好型的简单题解 #include<bits/stdc++.h> using ...
- 洛谷 P1147 连续自然数和 题解
P1147 连续自然数和 题目描述 对一个给定的自然数MM,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为MM. 例子:1998+1999+2000+2001+2002 = 100001 ...
- luogu P1147 连续自然数和 x
P1147 连续自然数和 题目描述 对一个给定的自然数M,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为M. 例子:1998+1999+2000+2001+2002 = 10000,所以 ...
- 洛谷P1147 连续自然数和 [2017年6月计划 数论01]
P1147 连续自然数和 题目描述 对一个给定的自然数M,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为M. 例子:1998+1999+2000+2001+2002 = 10000,所以 ...
- 洛谷P1147 连续自然数和 题解 枚举
题目链接:https://www.luogu.com.cn/problem/P1147 题目大意: 给你一个数 \(M\) ,求有多少对连续自然数对之和为 \(M\),输出这列连续自然数对的首项和末项 ...
- 洛谷 P1147 连续自然数和 Label:等差数列
题目描述 对一个给定的自然数M,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为M. 例子:1998+1999+2000+2001+2002 = 10000,所以从1998到2002的一个 ...
- P1147 连续自然数和(思维题)
题目描述 对一个给定的自然数MM,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为MM. 例子:1998+1999+2000+2001+2002 = 100001998+1999+2000 ...
随机推荐
- discuz论坛与其它网站登录注册整合
discuz论坛与其它网站登录注册整合 本文以discuz 7.0.0 php版本的论坛与 .net 2.0的网站注册登录整合为类.没有采用uc_center或第三方插件.以另类的方式实现.此方法实现 ...
- bootstrap-列表组
<div class="container"> <!-- list-group 列表组 给ul添加 list-group-item 列表项 给li添加 --> ...
- quartus II PIN脚相关之一
FPGA设计中有时候会改变输入输出名称,但是会带来一个问题,在PIN 叫配置页面上会有余留的久名称的Pin脚.如实例中,把 FPGA_CLK_50MHZ 名称修改为 FPGA_CLK,经过编译综合之后 ...
- Django学习笔记(一)
1.$python manage.py runserver 0.0.0.0:8000 开放所有IP $python manage.py runserver 8000 制定开放的端口 2.报错信息: ...
- Jmeter组件3. HTTP Cookie Manager
两个坑的地方 如果一个域(scope)内有两个cookie manager,Jmeter说,我分不清了,你自己看着办吧,所以不要没事找事,一个域内一个cookie manager够了 用户自定义coo ...
- Android RadioGroup设置默认选中项
今天有人问.Android 里面 RadioGroup里面有两个RadioButton怎么设置默认值? 第一个RadioButton设置 android:checked="true" ...
- Hadoop HDFS编程 API入门系列之合并小文件到HDFS(三)
不多说,直接上代码. 代码 package zhouls.bigdata.myWholeHadoop.HDFS.hdfs7; import java.io.IOException;import ja ...
- json 拼接多个对象
var json = {}; var json1 = {a:1,b:1}; var json2 = {c:1,d:1}; json = eval('('+(JSON.stringify(json1)+ ...
- KMP算法简明扼要的理解
KMP算法也算是相当经典,但是对于初学者来说确实有点绕,大学时候弄明白过后来几年不看又忘记了,然后再弄明白过了两年又忘记了,好在之前理解到了关键点,看了一遍马上又能理解上来.关于这个算法的详解网上文章 ...
- 解决IE中window.open打开链接refer丢失的问题
来源: http://www.coderanch.com/t/114767/HTML-CSS-JavaScript/nClick-window-open-loses-referrerHello,I h ...