QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2442|回复: 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组决赛题解第二题
    . h- \, _+ R% Y$ `; g3 |' s/ P4 T$ B! @8 l2 d- `* A
    求两两不同的素数组成2019的方案数, S4 A' S2 ~0 F6 Y$ |) q
    注意点:并不是两个不同的素数,再者直接搜索应该会TimeLimited,所以用dp或者记忆化搜索,方案数可能很多,记得用long long
    % H, F. a/ W; [! j结果: 55965365465060; V2 t3 i; G( a* ^7 ]( S
    代码:
    0 T- ?! D; |  a6 o- a#include<bits/stdc++.h>
    2 m& p( p/ v: y4 `9 v' U#define mem(a,b) memset(a,b,sizeof(a))9 a0 r: o* w; j/ K8 e  i: |
    using namespace std;
    ' B1 f* o4 X8 K! i! z* j3 Ntypedef long long ll;  \! Y; R+ t5 P
    const int inf = 0x3f3f3f3f;- o* K- m+ {' o
    const int maxn = 3e5+55555;! D& u! o% h0 [8 Z2 L; H: ]7 f
    const ll mod = 998244353;
    ) H- B8 p% T+ b. `/ M" Econst double eps = 1e-7;
    " n4 r) e& Q. x: o1 i9 S. E7 H* U* z) v7 w/ G0 E) O- X5 W
    bool vis[12345];
    & h5 ]7 f/ m  F/ F- `vector<int>prime;6 N6 \2 z0 `% O: O6 x+ L
    ll f[3000][3000];
    0 d2 D  p% ^1 I4 T( C7 H5 d1 \( C! [) I7 t% X9 ~6 ~: _
    void init() { //素数筛
    ! o+ C7 u. N8 j) Q9 g9 o    for(int i = 2;i<= 3000;i++) {
    5 j; Y: O0 G9 ^) A, e- N: e        if(!vis) {7 W! u- `/ x0 |( D
                for(int j = i*i;j<= 3000;j+= i) {) c8 C" [# l1 J
                    vis[j] = true;1 u; e5 n. d: ~0 y) M
                }
    ( H. Z4 @" _+ V: T* p+ r        }8 C; m8 S- h7 m4 V; _. O" s- ^. ]
        }
    * \2 T0 k5 M7 }, E6 g- U/ x    for(int i = 2;i<= 2019;i++) {& A% c$ C8 M. w' f3 _- [: A
            if(!vis) prime.push_back(i);# [$ J( k7 _& H# F2 T- W
        }/ t& U. n9 R+ w4 P% |
    }4 D% V2 v1 Q# @6 n

    9 J0 l) X$ Z6 ~9 h+ r' E) |6 all dfs(int pos,int sum) {
    $ j( I/ k, b2 n9 ?    if(f[pos][sum]!= -1) return f[pos][sum];3 _% [5 @$ Z/ ~( a: L- W9 p
        if(sum == 2019) return 1;. I. M% Q9 z- j# Z) }5 S, N* V
        if(pos>= prime.size()||sum> 2019) return 0;+ }8 A( v3 k# n4 ]' {& z& F& q# {( I

    ' V# |, @# R0 z6 j8 Q% E$ ^    ll ans = 0;
      r# X5 K9 I' y# E) H: \    ans+= dfs(pos+1,sum);// 不要当前这个素数
    4 z9 i% n* k" o/ E+ y) u7 D    ans+= dfs(pos+1,sum+prime[pos]);// 要当前这个素数5 e+ Z+ ~( M3 E# t( m7 E( [/ G9 t+ s
        return f[pos][sum] = ans;4 H- U% J% \$ U! X) y0 S
    }
    ) r: q, P' M) ^# Q( ?
    . T' a: h4 g: l" G: m9 Wint main() {2 ^/ {1 w/ E) i1 j) w3 t
        init();. a4 L, F5 Q7 P: ~# l. m

    - Z7 q$ @8 L) i) o% d* d: V8 S/ i    mem(f,-1);- ~  g; B9 [9 {- a' u/ c9 s+ b7 @
        ll ans = dfs(0,0);' S, f& W" i; `) L: ~* z
        cout<<ans<<endl;/ q) u' O# R; [- }/ T. b

    + `8 y; h1 @; J0 k. j" C1 J! b/ E8 S# T    return 0;
    ; Y) ~- W! z! J}
    3 l  b: e. ?$ ?/ {! A: t1 u---------------------
    ( z. `4 ?5 m. V8 n& u, J作者:nka_kun
    7 c. y1 H8 O+ M5 a3 C4 b! W
    * [$ F8 H2 Q- ^: I/ H% V' y. H
    % v% @9 ^0 f! \/ G
    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-14 15:35 , Processed in 0.399530 second(s), 51 queries .

    回顶部