QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2505|回复: 0
打印 上一主题 下一主题

2019第十届蓝桥杯B组决赛题解第二题

[复制链接]
字体大小: 正常 放大
杨利霞        

5273

主题

82

听众

17万

积分

  • TA的每日心情
    开心
    2021-8-11 17:59
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    网络挑战赛参赛者

    网络挑战赛参赛者

    自我介绍
    本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。

    群组2018美赛大象算法课程

    群组2018美赛护航培训课程

    群组2019年 数学中国站长建

    群组2019年数据分析师课程

    群组2018年大象老师国赛优

    跳转到指定楼层
    1#
    发表于 2019-6-28 15:49 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    2019第十届蓝桥杯B组决赛题解第二题
    + S. l2 k1 T+ m0 `1 R- x( H; f: b- R3 i, H& Y* |* G
    求两两不同的素数组成2019的方案数/ p9 W8 Q1 n! A. X( B
    注意点:并不是两个不同的素数,再者直接搜索应该会TimeLimited,所以用dp或者记忆化搜索,方案数可能很多,记得用long long
    8 X) S3 Q5 m7 a* Q# M5 w4 u# U结果: 55965365465060
    ) f. Y/ K+ q& M# J代码:
      F$ B" x+ w7 d" N; y6 Z' b#include<bits/stdc++.h>; ^0 h8 [) k6 z4 ?$ q1 Y
    #define mem(a,b) memset(a,b,sizeof(a))
    ' G$ A: F0 _0 Q' q( ousing namespace std;
    , a# N" X8 l9 `6 u$ E5 Qtypedef long long ll;0 L4 o4 \8 g& X; ^8 H  b
    const int inf = 0x3f3f3f3f;
    % q) q) o* u1 |4 `const int maxn = 3e5+55555;6 F4 g7 L" K& S" W
    const ll mod = 998244353;
    6 W8 E$ V5 ~- I6 d7 w" N. Uconst double eps = 1e-7;! [+ J/ G! _+ ?) J! U6 t* Q
    ; ?0 E8 Q8 _/ @/ V+ V" }5 b
    bool vis[12345];" j: A$ d& q0 z0 E7 u5 o$ W5 {
    vector<int>prime;! B& p- w7 b9 [5 B# W
    ll f[3000][3000];
    8 m9 N$ l% ?! W
    # W) a4 T/ a" _$ y0 Cvoid init() { //素数筛7 K" F5 k. Y0 R5 }+ S
        for(int i = 2;i<= 3000;i++) {& r" i0 }: U/ F3 ?  I. Y7 E& k* t% Q7 ~
            if(!vis) {
    % i! o3 S# }+ }& j) h            for(int j = i*i;j<= 3000;j+= i) {
    . y7 _; q1 r/ [) \, b                vis[j] = true;) `, M7 u3 A% i8 a
                }
    2 o  t+ }$ J) D        }
    , }" o+ g) S1 t+ e8 ~    }. G" O' |. `* y: P/ D6 J1 f- @
        for(int i = 2;i<= 2019;i++) {2 l2 F7 \9 x! g; a# f
            if(!vis) prime.push_back(i);
    9 y3 f# }) O2 m- s: f  c: ~    }& K  Z" U! U$ Q! }
    }
    9 A" Y, h) l$ j/ w0 ~! a5 }% t0 ]- @4 w% y3 L
    ll dfs(int pos,int sum) {; ^" o" U* o. {" L& J
        if(f[pos][sum]!= -1) return f[pos][sum];
    3 m5 q4 ]6 G; P  I    if(sum == 2019) return 1;( c  e: l4 j. q7 v5 a0 V/ \* J/ e
        if(pos>= prime.size()||sum> 2019) return 0;
    . \3 g" e7 J( v' P& }0 Y0 N$ I( Z" w2 l! L& {5 U9 e" }( A
        ll ans = 0;
    2 T# ~$ G7 \/ z7 [/ |$ G$ W% x    ans+= dfs(pos+1,sum);// 不要当前这个素数- c7 J) g/ e! z
        ans+= dfs(pos+1,sum+prime[pos]);// 要当前这个素数
    7 [3 G0 N) B* W& g    return f[pos][sum] = ans;6 E6 j! v2 x7 c
    }" V* D! k8 G0 o4 ^( n
    7 \' [$ a; s$ J- R9 k4 N% P3 `
    int main() {
    1 m9 n2 T. P/ c7 w: s    init();% h  C8 y2 }  _4 R. }

    9 u/ D% s2 ^: {# ^0 Q2 f; E    mem(f,-1);
    + ]2 o5 d% J% {/ h. }3 S    ll ans = dfs(0,0);
    + t: C6 [5 N: V' E    cout<<ans<<endl;2 h# Q$ n! p' X  R

    0 l5 ]4 b& F7 v# h- a! \    return 0;
    , q5 s# @, q; ]+ ?}
    . k1 _) z  d1 p3 D--------------------- 0 I0 _2 g6 R7 B) I3 V
    作者:nka_kun
      l+ w8 T# \9 k( O  v5 B5 z) b" _* U
    % ?0 B& S" q2 m8 Y, Q5 r
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-7-29 06:04 , Processed in 0.311133 second(s), 51 queries .

    回顶部