QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2445|回复: 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组决赛题解第二题% p# u$ Y1 Q" Y3 O  A% I

    7 G7 C' V- q  ]% F" n求两两不同的素数组成2019的方案数
    4 U5 E, |- n; U% C8 k& @注意点:并不是两个不同的素数,再者直接搜索应该会TimeLimited,所以用dp或者记忆化搜索,方案数可能很多,记得用long long
    & c/ ^) C; l" s, w# g2 V% e结果: 55965365465060' P& J$ S( [+ }0 i2 T7 e3 h0 P
    代码:: c1 k- k0 d( O
    #include<bits/stdc++.h>( N, l. p3 D* @. X+ i  [$ \# m
    #define mem(a,b) memset(a,b,sizeof(a))) p& L7 ]2 ?7 T* E  b. {% T) o
    using namespace std;8 y' H3 F! Z3 Q, K" f# q4 W1 O  }
    typedef long long ll;
    . [5 q, w- g1 q# R& B# Kconst int inf = 0x3f3f3f3f;
    ' ]" V4 z; A! }+ H4 Uconst int maxn = 3e5+55555;9 m& H$ P- `2 X
    const ll mod = 998244353;5 r" {$ R$ u; x/ g% v2 T
    const double eps = 1e-7;" J+ h4 b8 V$ I9 P5 ~
    ; {) P: |: t; N3 P9 \; Y
    bool vis[12345];: g& [! y& k  G! Q8 n, ~2 u
    vector<int>prime;
    : o( j/ p* f8 d3 c6 S; }" B$ Yll f[3000][3000];+ v; _. D" Z) r# s4 t/ n

    % K" U( h! e! C& g9 t7 Nvoid init() { //素数筛1 t" P9 G, g# ~$ q, Z
        for(int i = 2;i<= 3000;i++) {
    $ v; W5 I( k! S( g. o        if(!vis) {
    ; h. b5 U/ h; f# V            for(int j = i*i;j<= 3000;j+= i) {( V9 Z7 F8 i: ~$ H3 w$ x: O$ Q
                    vis[j] = true;
    9 O) I, L& H2 f* q            }: [% C) v" L: N; ?; w
            }
    6 d1 S, w; _, `. Q) m    }
    / B6 h+ c" q/ J& y4 |    for(int i = 2;i<= 2019;i++) {" }3 u) d& h( @& U
            if(!vis) prime.push_back(i);
    ( ~# I3 }$ j' \( V( d  o    }) F% ?2 T! H1 s9 V8 H# z2 p1 Z' M
    }$ ^0 l6 v: d' J% D" p9 }

    * a0 p- H6 Z, M! U; R% r7 tll dfs(int pos,int sum) {
    % U! o5 k; G2 u$ m    if(f[pos][sum]!= -1) return f[pos][sum];
    ( p4 ]2 y# E; O1 l  ?    if(sum == 2019) return 1;
    3 f6 y9 h, K0 U+ ~- W    if(pos>= prime.size()||sum> 2019) return 0;! U! K5 S/ |, c. C3 T

    , H2 p. }2 Q; B    ll ans = 0;& s6 [! B& b2 q  p8 S  q
        ans+= dfs(pos+1,sum);// 不要当前这个素数+ ]% X* T5 S5 K6 q3 s7 f; ^$ ]8 |
        ans+= dfs(pos+1,sum+prime[pos]);// 要当前这个素数
    7 u8 h1 E- G8 b1 t    return f[pos][sum] = ans;
    ; T: N% n5 ]) ~: @}
    6 q( g; B$ A  `5 K& J' X7 K- r3 H9 Z- h9 N
    int main() {7 p; h! Z5 B8 w+ D9 b$ R% `3 k
        init();
    ! ?9 W: T& S5 V6 h& l% s7 u; J# l3 |$ J, F. T) c& M
        mem(f,-1);# F. g: B" ^& F/ M8 g0 n9 h! ~
        ll ans = dfs(0,0);1 Q7 A. h# E0 C* k3 l8 ?, n* X
        cout<<ans<<endl;  z- A9 a: I$ r0 u+ w3 L0 Y5 X
    ) b9 ]+ Z6 e9 Q: l
        return 0;
    9 s: h! f9 b! [* n}
    * {- F7 W9 G! b% C% H4 b---------------------
    : a" J+ `$ k' {* v作者:nka_kun
    3 ]+ ^' m, X8 S& a0 b9 h+ E$ k% s$ B' n/ G' w
    ! V6 q# S4 O  O0 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-15 14:10 , Processed in 0.475673 second(s), 51 queries .

    回顶部