QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2513|回复: 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组决赛题解第二题
    ; a; J$ B" ?' K! Q
    # w7 f( p3 E4 }5 t求两两不同的素数组成2019的方案数( N' O) ]$ b. w% ?9 Z& M9 |
    注意点:并不是两个不同的素数,再者直接搜索应该会TimeLimited,所以用dp或者记忆化搜索,方案数可能很多,记得用long long
    + J" J! I4 K9 L+ p结果: 55965365465060
    ' E8 e5 l: s4 S4 K3 \, ^2 V代码:
    : d6 I1 N1 o& ?1 n7 `#include<bits/stdc++.h>' {0 T, x0 a+ x' _- n3 V
    #define mem(a,b) memset(a,b,sizeof(a))
    4 I  Q# T0 j2 t3 S/ C8 nusing namespace std;
    . D3 ]5 u" Z0 itypedef long long ll;) {( J( U9 m4 H$ k$ L
    const int inf = 0x3f3f3f3f;  }4 N; ]" Q3 ^5 X/ |' r3 m
    const int maxn = 3e5+55555;2 E2 S  H7 g2 }! ]. a/ x+ x1 B
    const ll mod = 998244353;8 @$ B) T* S6 b, p5 E  j# ~
    const double eps = 1e-7;
    6 f/ P) Q: L  _7 q6 ]$ T% {; h& |4 M
    bool vis[12345];
    ) T0 O% K; `1 f% A- Y, cvector<int>prime;" e; G4 d0 d. c) s
    ll f[3000][3000];
    8 G. Y  X, ~) J  {* k+ Q$ R2 t  c7 x, `) |0 O
    void init() { //素数筛. w, \! n& u+ g- E
        for(int i = 2;i<= 3000;i++) {& `2 D# i+ y- |# o8 c+ ^0 I& u
            if(!vis) {# G$ t/ Y# u. \# T
                for(int j = i*i;j<= 3000;j+= i) {
    ; f1 `4 ~- ?' Z2 x" v                vis[j] = true;
    8 b. o& q1 I/ a& L. U! ]! g            }% N* _* W0 \+ w$ z: E. i& E- p
            }
    2 o6 C- b, k; G5 I1 c3 f' g    }: ?: g! U" b. n3 {
        for(int i = 2;i<= 2019;i++) {# _$ S9 F2 n+ }7 r& K# ^! ]
            if(!vis) prime.push_back(i);
    4 p2 s2 S' P6 v3 o& M, }    }
    $ O: a4 p! S$ P& q! G}
    7 q. S6 g1 f1 Z* ]: R7 R* ]! a0 s  V
    ll dfs(int pos,int sum) {
    / Q& l* l; s% Z" F    if(f[pos][sum]!= -1) return f[pos][sum];
    + b  [" `' y; M5 g' \    if(sum == 2019) return 1;/ {7 a& U6 f0 R+ ?
        if(pos>= prime.size()||sum> 2019) return 0;
    ! f" _8 y4 F1 p3 M2 T# ?$ S1 n& I3 s, m! t; Q3 u6 E
        ll ans = 0;; D1 M" s2 k# a/ L3 R
        ans+= dfs(pos+1,sum);// 不要当前这个素数* B6 i( E1 f0 j* p
        ans+= dfs(pos+1,sum+prime[pos]);// 要当前这个素数
    5 ^: P- D' X6 E7 C% I1 u0 j" M    return f[pos][sum] = ans;
    # M7 L  R* l* d% e# Z; i}
    6 I0 B: k8 g" H$ K& U$ G, S3 U; {( @! ?1 _3 m4 \
    int main() {+ Q5 B. ?9 ]9 O
        init();5 h0 X) l1 L, d8 D! s6 N
    ' x- t' L9 U! M( F8 a# I
        mem(f,-1);# C: C" ]+ I" d# r9 ^% r
        ll ans = dfs(0,0);; m( c% \" N" {( S4 O$ [4 E( p, a
        cout<<ans<<endl;
    + e- w/ q# a6 H, K* L7 v% i
    " i4 x8 d3 `0 F    return 0;
    & C/ b* {) R3 X+ I}) E( a5 l3 K4 k# ?- D
    --------------------- 8 u' W& z4 \# G8 ~/ a1 T
    作者:nka_kun 7 e# i% t* V, f+ p: }. r

    % [2 ^4 W9 f6 \9 h0 L' r
    - k% [3 U$ c/ C
    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-7-30 21:58 , Processed in 0.397882 second(s), 50 queries .

    回顶部