QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2440|回复: 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组决赛题解第二题$ `& K# v4 c. v  G7 j
    : a  S8 \% B. ^2 @2 H1 D$ q
    求两两不同的素数组成2019的方案数
    ) G" Q# x# K0 B9 d3 M. _注意点:并不是两个不同的素数,再者直接搜索应该会TimeLimited,所以用dp或者记忆化搜索,方案数可能很多,记得用long long8 b5 _! t9 z% p, I9 m# a' L
    结果: 55965365465060
    9 N" G# Z3 l9 c9 Z代码:
    % D- B1 z% a' i' b+ b#include<bits/stdc++.h>+ n* E3 C0 V& Y! X% F9 ~2 n
    #define mem(a,b) memset(a,b,sizeof(a))
    " O7 @$ Z2 q" x. ?1 P/ {, @0 yusing namespace std;
    " U) c/ U( W2 O8 g+ Y7 n+ H* ~typedef long long ll;
    2 h6 R% \2 T' n  i8 Gconst int inf = 0x3f3f3f3f;; E% p( ?1 \% E4 x' ^" Q' e4 y0 `
    const int maxn = 3e5+55555;
    % }! ]4 s, i5 @, |" i0 yconst ll mod = 998244353;8 }* q& ~+ X; c: }! x9 }* F
    const double eps = 1e-7;' r) P- j; F5 y1 N1 y

    , p. Q: _# T- o$ K3 N4 @$ Obool vis[12345];) C- P. u' f4 g& i. f( Y
    vector<int>prime;' _) ^- q, f% @! A7 H  l+ D! ?
    ll f[3000][3000];
    , t9 S5 U4 B: F" [
    1 e3 H, C  q% K2 W5 ?* P# Y/ Cvoid init() { //素数筛
    1 {, x& \& {6 r( v; [& b    for(int i = 2;i<= 3000;i++) {+ p5 h3 s( ~9 R# K$ f% J
            if(!vis) {! I) H& [$ f* y7 H/ ]9 I
                for(int j = i*i;j<= 3000;j+= i) {
    2 B5 H( w+ p& E% a8 t" u                vis[j] = true;
    ! ?! s3 d  ^+ C- D8 U2 g9 x            }
    / r6 Z, K$ O% b- P4 X, j        }
    * p) i. R9 D# {6 W2 i/ r    }# m& J0 x- ], B% e
        for(int i = 2;i<= 2019;i++) {
    ; }' r& j) b( b4 {0 G        if(!vis) prime.push_back(i);
    + C3 M+ `7 K$ T$ Z7 [- q    }$ V$ u. x* J2 c) m
    }% _: q! c1 D2 K9 H' d6 }+ B/ e& O
    8 h2 h* F, [3 l
    ll dfs(int pos,int sum) {$ l! |0 t. p4 x. }! f: U3 f) Y0 J
        if(f[pos][sum]!= -1) return f[pos][sum];* T+ G3 a( J1 O& U4 k
        if(sum == 2019) return 1;0 P+ m" q# a& s- j8 @- a' F3 J
        if(pos>= prime.size()||sum> 2019) return 0;
    ( ?0 I  h! z. U9 ]4 }: D7 J' ]  T3 }% _; G1 h7 f$ f6 M8 B
        ll ans = 0;$ F. V: }6 G+ S: Y. R9 {8 q8 v$ z3 I
        ans+= dfs(pos+1,sum);// 不要当前这个素数: U. L1 v, e* |6 S' L7 m0 G
        ans+= dfs(pos+1,sum+prime[pos]);// 要当前这个素数
    6 e* b" h+ e, x$ Y- h    return f[pos][sum] = ans;
    0 C" Q" K1 L% w1 `4 |, Y}
    9 ~. u* J" o2 z1 l
    2 n) I$ H  x; L$ H* tint main() {4 H. H( @* r& V
        init();
    ' t8 o6 H2 s/ Q$ M
    % ~9 V$ K* u# N3 y# k( F    mem(f,-1);
    , ~. h5 ~' p; e1 o" V- r2 Y    ll ans = dfs(0,0);% R. i- P1 A$ p
        cout<<ans<<endl;6 p0 u- A# z7 l) R# l0 Y5 ~$ |
    3 G4 G( ?8 i) _( @7 A
        return 0;  \! F6 e, q! q. F6 v2 P- t
    }' _0 i2 ]. A8 M/ Y, \2 V7 F
    ---------------------
    & G5 t+ X7 M7 q6 m1 }) {作者:nka_kun 5 k# `! r3 i: [3 ?
    1 E: l( X, i$ v6 |2 M, O; }
    $ C: L; ]* k4 P/ C/ g0 f4 v: @  `
    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-13 01:15 , Processed in 0.451826 second(s), 51 queries .

    回顶部