会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
博客园
首页
新随笔
联系
订阅
管理
pku2081----Recaman's Sequence(按所给的递推公式来做就行)
5196K
16MS
G++
414B
刚开始还苦恼着要不要自己重新再推一个公式出来
后来发现他给的空间和时间限制,应该是足够的,就试了一下,结果就是上面这样子。
题目思路就是:首先生成结果
主程序里直接调用就可以了。
代码如下:
Code
#include
<
stdio.h
>
#include
<
string
.h
>
int
a[
500005
];
bool
f[
3012505
];
void
init()
{
int
i;
memset(f,
0
,
sizeof
(f));
a[
0
]
=
0
;
for
(i
=
1
;i
<=
500000
;i
++
){
if
(a[i
-
1
]
-
i
>
0
&&
!
f[a[i
-
1
]
-
i]){
a[i]
=
a[i
-
1
]
-
i;
f[a[i
-
1
]
-
i]
=
1
;
}
else
{
a[i]
=
a[i
-
1
]
+
i;
f[a[i
-
1
]
+
i]
=
1
;
}
}
}
int
main()
{
int
k;
init();
while
(scanf(
"
%d
"
,
&
k),k
!=-
1
){
printf(
"
%d\n
"
,a[k]);
}
return
0
;
}
posted on
2009-01-08 00:26
pandy
阅读(
637
) 评论(
0
)
收藏
举报
刷新页面
返回顶部