QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2446|回复: 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组决赛题解第二题
    - Y2 M7 _- b. y2 K) k/ n4 Z/ |% S1 c+ y  [
    求两两不同的素数组成2019的方案数6 Z5 E2 G( Y. s6 m9 Y
    注意点:并不是两个不同的素数,再者直接搜索应该会TimeLimited,所以用dp或者记忆化搜索,方案数可能很多,记得用long long0 H6 ]( ~5 O; i0 ^; t* n
    结果: 55965365465060
    3 ?( F2 `% I- X% P, J7 }! Y代码:
    & V% M  t  V  {0 H* C4 P5 U( T#include<bits/stdc++.h>
    3 |9 y1 ]' W0 M$ X/ k' @#define mem(a,b) memset(a,b,sizeof(a))
    5 H% L: P' H0 k9 u/ q7 R+ s5 I0 F. Ausing namespace std;6 |9 q) S, Z! r4 Y' c0 F
    typedef long long ll;
    9 k" |7 r9 R- [- r6 Xconst int inf = 0x3f3f3f3f;
    . v8 P( H0 I6 ?! Sconst int maxn = 3e5+55555;! A0 _4 ]. l  x
    const ll mod = 998244353;6 ^9 g4 ~0 h4 y: V/ H, E" g  _5 T
    const double eps = 1e-7;1 }+ n4 P/ ]' |: f9 Y

    0 v' x/ g- U# u$ S  o$ qbool vis[12345];
    ) O3 n! c' O; r: Zvector<int>prime;
    1 Z) M6 B3 T: E; N( Mll f[3000][3000];' v* E5 h% n+ I, X1 r  T
    3 E9 R, c2 q" V- N3 J: x" m
    void init() { //素数筛1 N  `2 W* W1 W+ A8 R
        for(int i = 2;i<= 3000;i++) {3 M  F6 j$ E5 j  u2 [
            if(!vis) {* _0 w  w1 q9 G3 r9 M0 b! U+ l* K  q
                for(int j = i*i;j<= 3000;j+= i) {' q3 _; e+ ]3 ]. V- q3 s$ h
                    vis[j] = true;. J- Q* F/ B9 D( {
                }( A8 L8 `4 W4 Y& S. q
            }
    * u: h- |* b  a! Q: M/ G. a    }
    - Y; p( C$ F# ~6 _! r: ]! d    for(int i = 2;i<= 2019;i++) {# |; |1 Y6 N: a
            if(!vis) prime.push_back(i);
    / P; O, n/ m. J* G7 u4 G* m! P    }1 d9 x9 \" F" o! ?' _- c
    }
    % w5 Z+ r( q9 g* m6 z+ s3 }0 b3 ^: Y
    2 n- a' d& c" tll dfs(int pos,int sum) {- Z7 Z: i, C3 [! Q' \' V+ o
        if(f[pos][sum]!= -1) return f[pos][sum];0 o. e' ~% X: J3 U
        if(sum == 2019) return 1;
    ! R  ~- K4 c! s* \& }    if(pos>= prime.size()||sum> 2019) return 0;& N  f. K. p2 t+ z
    # q6 v: s. h5 Z& w4 H
        ll ans = 0;
    # N4 p, W# [0 ^2 X2 z0 \' [    ans+= dfs(pos+1,sum);// 不要当前这个素数* {( \: Z3 _: l& C' n5 U6 N
        ans+= dfs(pos+1,sum+prime[pos]);// 要当前这个素数
    / U. f* Y5 t4 H& T    return f[pos][sum] = ans;
    $ v. ^3 b+ B9 x3 K* ?- S: J$ G; B$ N& W}: z6 h' D0 \0 D

    8 A; V) m2 e& l) X3 x7 K  T6 }+ kint main() {
      @2 k/ s5 }4 h6 N# k    init();4 Q5 Z4 C( n6 R" a2 p# O  F, `
    9 k# T; w$ l0 Z  z# {
        mem(f,-1);
    , @* H* G; a2 r/ f7 W( m1 ~    ll ans = dfs(0,0);5 Y; A3 w* I3 m0 k
        cout<<ans<<endl;! u, j7 b  |: O

    / x4 B3 d+ Z4 T+ f' g* L- g/ g- s    return 0;
    ( E* W, X# w6 D, c}
      F# y6 Z+ e! ~& R/ r( w. x--------------------- 8 O$ R" |3 o7 w( a, G5 m
    作者:nka_kun 0 N; Z1 n3 w: h
    # t; u% k! C$ u2 c: Y) S3 s( y4 Y$ i

    ) [) G( e- l( ?' m" L  O% x6 [
    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-4-15 18:33 , Processed in 0.394523 second(s), 50 queries .

    回顶部