Advertisement

2023年12月GESP-5 编程题解答

阅读量:

选择题+编程题 官网有:GESP官网

此次的五级考试难度较高,甚至超过了八级的挑战性。

编程题 1:小杨的幸运数

知识点: 筛法+后缀答案dp

思路:

首先通过筛法对每个数值进行预处理,以确定其是否为幸运数;接下来定义ans[i]表示i经过幸运化处理后所对应的幸运数;若i本身为幸运数,则ans[i]的值等于i;反之,若i不是幸运数,则ans[i]的值等于ans[i]+1。倘若未预先处理ans[i]数组,而是在每次查询时向后查找,可能会导致运行时间超出限制。

源代码

复制代码
    #include<bits/stdc++.h>
    using namespace std;
    int a,n,h[1100001],ans[1100001];
    int t=1001*1001;
     
    int main(){
    cin>>a>>n;
    for(int i=1;i*i<=t;++i)
        if(i*i>=a)
            for(int j=i*i;j<=t;j+=i*i)
                h[j]=1;
    for(int i=t;i>=1;--i)
         if

全部评论 (0)

还没有任何评论哟~