题解 SP3934 【MRECAMAN - Recaman’s Sequence】

这题感觉没有省选-吧,我要去入门的都能AC

我采取的是递归读入+map判断重复,具体代码如下:

#include <cstdio>//比cin快
#include <map>//map头文件
using namespace std;//标准命名空间

map <int, bool> mp;//创造map映射

int a[500005];//数组

void input()
{
    int k;
    scanf("%d", &k);
    if(k == -1)//看样例,-1结束
    {
        return ;
    }
    else
    {
        printf("%d\n", a[k]);
        input();//递归
    }
}

int main()
{
    //先预处理一遍
    a[0] = 0;
    for(int i = 1; i <= 500000; i++)
    {
        if(a[i - 1] - i > 0 && !mp[a[i - 1] - i])//按照题意
        {
            a[i] = a[i - 1] - i;
        }
        else
        {
            a[i] = a[i - 1] + i;
        }
        mp[a[i]] = true;//将a[i]变为true
    }
    input();//递归读入和输出答案
    return 0;
}

求过

posted @   HappyBobb  阅读(2)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示