QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2441|回复: 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组决赛题解第二题& E/ S1 Z) A: d1 {- i' U

    7 ^2 l# t* N- ~4 X# L2 M/ [求两两不同的素数组成2019的方案数" P" S( o' Z- O7 b9 Q3 C
    注意点:并不是两个不同的素数,再者直接搜索应该会TimeLimited,所以用dp或者记忆化搜索,方案数可能很多,记得用long long5 c, V* W6 a. _- l
    结果: 55965365465060% a1 I, ^0 Z* ~# l& X
    代码:! `2 ]+ X4 D8 n9 C7 E, G/ P
    #include<bits/stdc++.h>
    9 B1 |; d9 w8 v$ R7 ^% y# H#define mem(a,b) memset(a,b,sizeof(a))
    ( e6 o. p1 u' c' R0 M) G3 }using namespace std;$ \" I* `# Q2 w( o4 s
    typedef long long ll;
    - R! y4 r- ?" |3 k+ X+ Iconst int inf = 0x3f3f3f3f;: ?$ y" E- q/ F1 e$ i
    const int maxn = 3e5+55555;
    1 R2 W6 }& Q9 S6 H# U# bconst ll mod = 998244353;7 I) E% x, \' c! ]: m( J+ g
    const double eps = 1e-7;
    4 M  F, s1 ], G6 @- O5 S# E# n; v; |- P0 W
    bool vis[12345];/ `4 q( X' W% U+ |
    vector<int>prime;/ m' o: D/ t3 t( X2 f3 r" v
    ll f[3000][3000];$ B$ _+ K5 w  |2 `' Z" D- `2 z
    % ^, x  o& C" T$ z0 B0 t7 Q4 Z$ h
    void init() { //素数筛8 q; ]  }/ L5 w  a. q/ V* A* \7 f- j$ Z
        for(int i = 2;i<= 3000;i++) {
    2 T7 F: h( n! K& c        if(!vis) {+ z( C+ E% X& F6 x/ h
                for(int j = i*i;j<= 3000;j+= i) {
    5 W  X, K6 E: \3 ~" ?2 [                vis[j] = true;
    * `, I& W2 y, v- W            }
    * U* L5 K. F+ O; I        }$ H  k% d  |% T5 u+ w" H
        }/ E6 y' h; d; Q# F7 w5 F8 @
        for(int i = 2;i<= 2019;i++) {
    - v9 t0 ^* `+ _  C8 S: [        if(!vis) prime.push_back(i);- x5 f6 p7 B. g4 ?+ B* v3 a
        }0 k( B/ E# V" v0 o2 e% A
    }$ {5 X( z; D4 s& @: }& J5 |

    2 |8 f9 Z7 w, {/ T5 H# L6 v: fll dfs(int pos,int sum) {
    3 P' t& |# [& D" ?- r! j    if(f[pos][sum]!= -1) return f[pos][sum];3 N. `  _# a, ^: X3 B9 N: Z
        if(sum == 2019) return 1;
    2 f! B$ E% E, I3 {& \    if(pos>= prime.size()||sum> 2019) return 0;
    ) B8 J, x3 |1 `+ V4 m
    6 V  j% I6 d# G" x    ll ans = 0;
    3 V, b- Q0 O* b! n9 B    ans+= dfs(pos+1,sum);// 不要当前这个素数8 R% f. E; V* c! W/ e
        ans+= dfs(pos+1,sum+prime[pos]);// 要当前这个素数
    " u4 Q+ @; M3 t    return f[pos][sum] = ans;( ]. L) m2 j# p1 o$ l: N8 T, e- A
    }* _+ F! N: W# L5 ~7 l' Y

    " l: X* i% q' v: u6 t7 Fint main() {- m! C  c8 V, L# X) V" ]
        init();
    2 p9 \0 C- f0 I; Y2 V* s
    " K6 E. S+ e! M1 u+ v& v" p* d    mem(f,-1);
    % V3 i. O5 S0 T! Q4 @    ll ans = dfs(0,0);& v* s4 _% m, W
        cout<<ans<<endl;- d5 X/ R+ }; z, n

    $ a7 u9 B% J& I) H+ y    return 0;
    2 ^/ Y8 m* X( q. ~2 i; {}/ m$ u# r- Z7 N6 G! f
    ---------------------
    6 C! l8 L5 B( }, C作者:nka_kun 1 C! U  g* o6 b, L2 h( r) _+ W
    - k, D& j: H0 [$ D# f/ G% f# n
    % D) @( j/ t" _; H6 u0 d; O
    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 04:28 , Processed in 1.571541 second(s), 50 queries .

    回顶部