社区讨论

50求调

P1832A+B Problem(再升级)参与者 2已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@miy5itry
此快照首次捕获于
2025/12/09 13:40
3 个月前
此快照最后确认于
2025/12/11 22:15
3 个月前
查看原帖
CPP
#include<iostream>
#include<algorithm>
#include<cmath>
#include<vector>
int sg(int a){
    std::vector<bool>suu(a+1,1);
    suu[0]=suu[1]=0;
    for(int i=2;i*i<=a;i++){
        if(suu[i]){
            for(int j=i*2;j<=a;j+=i)suu[j]=0;
        }
    }
    std::vector<int>su;
    for(int i=2;i<=a;i++){
        if(suu[i])su.push_back(i);
    }
    std::vector<int>dp(a+1,0);
    dp[0]=1;
    for(int p:su){
        for(int j=p;j<=a;j++)dp[j]+=dp[j-p];
    }
    return dp[a];
}

int main(){
    int n;
    std::cin>>n;
    if(n<2){
        std::cout<<0;
        return 0;
    }
    std::cout<<sg(n);
    return 0;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...