QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2517|回复: 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组决赛题解第二题0 H0 X! a! t! M0 @

    . O& `5 S3 y# k# r5 Z* D$ _求两两不同的素数组成2019的方案数7 G8 H$ v, H: ~4 H4 Q6 b7 c: h
    注意点:并不是两个不同的素数,再者直接搜索应该会TimeLimited,所以用dp或者记忆化搜索,方案数可能很多,记得用long long
    & }- N- C" o! J+ e3 H$ H0 }结果: 55965365465060
    - `0 ^. w" }/ C( i代码:  C: D' P  `" t5 w5 }
    #include<bits/stdc++.h>
    + R4 P. v' C+ s6 P#define mem(a,b) memset(a,b,sizeof(a))
    % r: l# W5 |* \# eusing namespace std;) T0 i% {( z9 \8 s
    typedef long long ll;" @% w8 ?5 V: s: d
    const int inf = 0x3f3f3f3f;4 }) v! [6 n. X: n& L
    const int maxn = 3e5+55555;
    6 e, B% p+ {$ r8 Tconst ll mod = 998244353;
    / m9 @1 t8 T* c0 pconst double eps = 1e-7;' q  |3 k) d/ j7 h" R

    7 i  D7 [( _( Q; S' lbool vis[12345];
    ) e- u" \% ]; H% A3 Uvector<int>prime;! W2 H" ]& l' X" q
    ll f[3000][3000];
    ! j$ R5 {& T4 G; Q) k
    % D  v+ G8 w- ^' q0 \. |! m& H; Nvoid init() { //素数筛/ s/ ^. R% f) b. u9 }4 [6 c  w
        for(int i = 2;i<= 3000;i++) {. C( G; N) J$ v& A: z% F5 y
            if(!vis) {; r7 u$ a6 Z# q3 ?
                for(int j = i*i;j<= 3000;j+= i) {' I) x' _# h. w7 s- O
                    vis[j] = true;; u$ ^/ [4 Q4 J3 e: h
                }' p6 G) n" f; S/ x' P: y
            }
    + R. `3 ?. U! D$ z    }- M; d& j9 \7 w3 p
        for(int i = 2;i<= 2019;i++) {
    0 N: v# O  H2 Q. v8 V  e) ]        if(!vis) prime.push_back(i);
    + c0 @8 N* }, h    }
    6 K; D/ [2 y5 g; A' _3 ^5 D' w; u}
    + O% P' I( d# g/ |& b  O$ v4 \/ R) E4 j- R$ [8 b3 o
    ll dfs(int pos,int sum) {2 Y, q3 h2 I# Q3 ~- h" \
        if(f[pos][sum]!= -1) return f[pos][sum];" F5 T$ e9 a+ u+ b/ Y
        if(sum == 2019) return 1;& K! |* _" S1 R+ p. c. k) O
        if(pos>= prime.size()||sum> 2019) return 0;5 {0 X- P; l  R; s8 x0 M: y) T( j" L

      I! q$ n2 y) ^4 h    ll ans = 0;- x1 C! d- M" ?) A; I+ S* h
        ans+= dfs(pos+1,sum);// 不要当前这个素数# n+ ~/ o" j# J
        ans+= dfs(pos+1,sum+prime[pos]);// 要当前这个素数
    " R9 A4 i- g7 x* o: J  |2 e0 O    return f[pos][sum] = ans;7 R6 M1 b, v/ E4 J6 F) y0 I
    }
    ! ?4 I% f! ?( A
      d% ~( F: U+ E5 xint main() {; {: \3 @2 B/ X) g2 g
        init();
    . Q& m  l- _. s- I! L+ [
    ! ^2 z' ]* M- ~2 o$ m( _( F    mem(f,-1);
    , P+ q2 M2 m: s& ?# B# b    ll ans = dfs(0,0);
    1 m5 {( ~7 N) q& F7 ?; P1 ^    cout<<ans<<endl;
    9 Y) ^8 Y9 a: \4 ~: g
    9 X* l* x; I" c1 B$ I" [    return 0;5 J2 ]# S7 ]0 W6 [% n
    }
    5 N! x0 L) Z8 s' L- |--------------------- # Q2 g! L; k+ Q5 W
    作者:nka_kun 7 ?/ I, X$ s8 E) `6 h8 G+ Y4 a
    ) u0 J& C7 d! ^

    4 D( _' k/ L8 a# i0 e) G  W
    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-8-1 15:28 , Processed in 0.438600 second(s), 50 queries .

    回顶部