QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2476|回复: 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组决赛题解第二题
    : G: a, C" T8 \+ s+ o
    # L$ M! p0 w2 K& i, E0 Y& S求两两不同的素数组成2019的方案数
    2 w' H8 L" X" N* N( u, Z( ?  i注意点:并不是两个不同的素数,再者直接搜索应该会TimeLimited,所以用dp或者记忆化搜索,方案数可能很多,记得用long long
    9 I& F9 c* L( J( W$ ^; @结果: 559653654650606 ~5 [, R* o  j- _/ G, N
    代码:
    ; B  k; f$ O" m#include<bits/stdc++.h>" ], O* u; P! B& v& e
    #define mem(a,b) memset(a,b,sizeof(a))/ a7 W4 T" x$ F
    using namespace std;
    ; m; K( `3 h# e' m2 `- Utypedef long long ll;; \6 }5 g" A. `8 p
    const int inf = 0x3f3f3f3f;
    $ j  @" d- U) T+ Z5 Y% kconst int maxn = 3e5+55555;
    3 y; q0 D' Y7 U" h: Pconst ll mod = 998244353;
    3 ]( I: S4 X+ w# Fconst double eps = 1e-7;
    4 ?' ]1 u/ _* r' h: A1 d5 c7 M- k. l; K; \) |5 C# K" @$ ?7 J% U
    bool vis[12345];2 T7 l+ E2 }( f+ [
    vector<int>prime;3 t: ~% I( I2 }. z2 F# B- Q
    ll f[3000][3000];
    ' @9 \& ^( O- C; c( @: o
    " s3 I! c* Z" tvoid init() { //素数筛7 e9 w0 b0 t/ K# t! y
        for(int i = 2;i<= 3000;i++) {7 i. d/ [8 ]( a" U9 W
            if(!vis) {
    " y3 n2 m0 Q9 _: I' u& I            for(int j = i*i;j<= 3000;j+= i) {
    + \. T  z3 f, e5 H/ k% n, a                vis[j] = true;- P3 L$ f/ h2 a
                }6 R. V% N# X7 d  E# J6 _
            }
    8 j; c4 W% Q6 U9 z$ `/ h    }
    ; J+ {5 H( e# B* G, b( Y% T$ I    for(int i = 2;i<= 2019;i++) {
    - z2 Q$ ?; o3 z& g        if(!vis) prime.push_back(i);5 {( ]0 g7 S9 A$ ?
        }
    . G8 i* b2 ^! }. o4 L$ i' c# `& T1 D}
    " F7 c7 X" K( H# k& c( w% A
    - K% b: ?- e! y5 ]8 k5 _9 E' Zll dfs(int pos,int sum) {  H! w1 V6 W  }( ?) Q
        if(f[pos][sum]!= -1) return f[pos][sum];% V- n+ t9 K2 l, [# Q) L+ C
        if(sum == 2019) return 1;
    ! x" W& p5 Y- L% t    if(pos>= prime.size()||sum> 2019) return 0;
    7 i9 L+ \  B3 f5 I- }/ r. H4 P- J! e2 T* n/ Z- R) N0 K
        ll ans = 0;0 E4 A9 U8 Y; _
        ans+= dfs(pos+1,sum);// 不要当前这个素数) C, |5 h6 k) p
        ans+= dfs(pos+1,sum+prime[pos]);// 要当前这个素数
    ) n5 u* l; o; T2 j! N    return f[pos][sum] = ans;* V1 e/ j  R" y4 L# D9 n
    }$ a  ~8 a; ], X/ R- m- I2 h
    . S7 I% i9 g* N. b0 x& g
    int main() {
    6 C; G& o; ?% t! A& ^    init();+ z6 ]0 H+ h5 S) x  O. S

    . k; |; P: t' B    mem(f,-1);4 M' t( {5 R( ~0 \0 w$ P
        ll ans = dfs(0,0);5 V$ `$ q0 j* A
        cout<<ans<<endl;# b# `: E" N+ j, E
    " B7 e1 j0 C; [0 @! ~8 w0 S. W) v
        return 0;
    ' \9 I& N, N' \- }0 R}
    " B$ h% |- }0 f2 h( Q--------------------- $ J8 I2 o! w8 c5 v
    作者:nka_kun
    & T, `! ]2 n& t1 b; T9 K$ h4 y0 e# l9 W, G

    ' v- w# y. {% D3 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-6-14 04:50 , Processed in 0.524585 second(s), 50 queries .

    回顶部