QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2444|回复: 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 i+ w2 \3 R7 N, K: M' {4 q5 N

    . y4 R& W3 s1 K! i. }: i求两两不同的素数组成2019的方案数
    . y# {4 O8 W* p1 X注意点:并不是两个不同的素数,再者直接搜索应该会TimeLimited,所以用dp或者记忆化搜索,方案数可能很多,记得用long long
    0 t; O' q# L( u3 m# X% L& N8 f结果: 55965365465060' G5 m! T# b2 g
    代码:( E3 N/ y  @. p! b# J' z5 y, {( G
    #include<bits/stdc++.h>+ Z( m# [# k4 u2 X2 K
    #define mem(a,b) memset(a,b,sizeof(a))
    % z& b: j1 d3 u3 B( Susing namespace std;
    ! _) i$ G9 h7 \typedef long long ll;" E. v2 y$ Q* b5 Y3 O' O
    const int inf = 0x3f3f3f3f;4 A; S: T6 N& ^  g" W
    const int maxn = 3e5+55555;) N" j; f, y# y5 z( p1 T
    const ll mod = 998244353;4 r+ S+ ?5 L- {2 h$ d$ S. p
    const double eps = 1e-7;
    4 K' `( X$ m1 \9 M  u& ]/ \
    4 k1 F( X4 [: ?7 {" B% Y# C& Dbool vis[12345];
    0 e6 Q7 u2 X6 r4 ~vector<int>prime;
    , X8 r8 @& u/ ]# }ll f[3000][3000];
    , u5 x' `) [, l9 K
    6 e3 b6 ~+ v7 U4 l+ d3 |; Zvoid init() { //素数筛
    1 \/ l! z6 m- K# ]    for(int i = 2;i<= 3000;i++) {. v# M7 s/ N+ z% S4 U7 H8 P* M
            if(!vis) {: j" s# R! g. J. |/ ]7 T
                for(int j = i*i;j<= 3000;j+= i) {
    8 r0 A+ N4 `2 T- W                vis[j] = true;9 w9 D! |' B9 T
                }
    / R2 ~8 |2 h% D: E2 R  j: l        }
    9 f8 k2 b1 s6 X% j' T    }, l) P- p: A3 z
        for(int i = 2;i<= 2019;i++) {
    + W& o# J! s# C        if(!vis) prime.push_back(i);
    , K" Y' A9 H; G( N( a8 ?    }1 |* w0 r3 ~# m; J9 f( `
    }+ _3 `% g# I2 _7 B4 Q5 O- `* _

    " B7 l6 j+ N! q; W' k) jll dfs(int pos,int sum) {& n% S, s5 ?! W& u8 L  y+ w4 n
        if(f[pos][sum]!= -1) return f[pos][sum];
    / h% y) E" g; W. a+ m    if(sum == 2019) return 1;
    ; |# _( m, ~: @7 g' i; `) ~$ d% C    if(pos>= prime.size()||sum> 2019) return 0;
    , @* x% s7 Y% N! V, E+ C) r: D1 y. G( x! u0 h8 x" _5 Z
        ll ans = 0;$ f+ C3 R7 t) q  w# {6 ]
        ans+= dfs(pos+1,sum);// 不要当前这个素数7 ~) w* Q0 [" l2 y
        ans+= dfs(pos+1,sum+prime[pos]);// 要当前这个素数* M; L8 }) o# i$ g+ k$ F
        return f[pos][sum] = ans;
    2 D; _4 v! f/ l}
    3 K+ X( t: C' L* e  {3 p" F- a1 V' ^2 {
    int main() {
    - N; Y) |. B6 Q. k) ]    init();
    " H0 [4 B. n4 V4 w# }( E! B! [3 [' p/ P% D! l$ L# P& h, @
        mem(f,-1);
    ) @# b5 J2 j& W  T' }    ll ans = dfs(0,0);
    - S, M8 z$ ?* |$ C) l. i) o    cout<<ans<<endl;  @6 i% ?, _/ j5 _$ d9 B) @! P

    % c& t5 O  R* J' {) ]    return 0;3 }- }# |- h1 ^1 X3 k4 I% ^3 S
    }! B9 b' \3 F6 Y" B" ^! q
    --------------------- # ?# @5 D6 O& o; C% g! t1 F2 q/ Z
    作者:nka_kun 8 V# \, W; m, k( C' S' p

    2 }7 L  d; k* P* I
    / i+ ^  z3 C- s0 g* 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-4-15 01:24 , Processed in 0.575728 second(s), 51 queries .

    回顶部