QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2557|回复: 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+ v4 B% F! m! j4 b, K: \9 o

    5 y* x7 J5 Q5 K  u* \1 l求两两不同的素数组成2019的方案数3 V1 U% X! R4 ^: f5 s
    注意点:并不是两个不同的素数,再者直接搜索应该会TimeLimited,所以用dp或者记忆化搜索,方案数可能很多,记得用long long
    % _+ o: m/ k# E) D. d5 d1 ^0 F结果: 55965365465060
    $ P$ u+ h9 Y8 c$ W* w代码:
    5 N# K0 ~( B1 A& F* M1 I6 k1 ]) {$ P#include<bits/stdc++.h>
    4 q4 |# O7 M' s" b* ^#define mem(a,b) memset(a,b,sizeof(a))
    3 m  a& D. d, q4 B9 |* }using namespace std;
    1 Z2 B+ [2 W; d7 e* R1 Jtypedef long long ll;
    # Q* N7 `8 v$ a- Pconst int inf = 0x3f3f3f3f;
    6 S! z0 @! R! Pconst int maxn = 3e5+55555;
    ; C8 S8 A, X& |, K; L- zconst ll mod = 998244353;
      g9 k5 f6 j& _6 M  F4 w; iconst double eps = 1e-7;3 y( L" |9 E: ~! X0 E
    5 L% G3 X8 X1 W: E6 r
    bool vis[12345];
    6 }6 M% O  I, D1 h- b9 z+ hvector<int>prime;
    $ `9 Y" K" a, C2 J& Z, Q1 z/ Lll f[3000][3000];) L. j! ]. k/ B# P* w7 k# h# T9 N

    . k1 f/ G0 |, lvoid init() { //素数筛9 U$ ]! b& t5 ~/ N3 t
        for(int i = 2;i<= 3000;i++) {
    2 N0 ?4 i. A. }" ~        if(!vis) {' w- Y4 P. J5 m4 Y$ l1 V4 |
                for(int j = i*i;j<= 3000;j+= i) {
    * X# G# x7 m- B9 o1 `                vis[j] = true;% R" Q% V3 g9 v9 {5 p  _
                }
    & }$ W" V* z% c' l: L        }2 A- e" S0 t3 c# Q2 R
        }
    , l& q1 W" D( Z5 _4 F    for(int i = 2;i<= 2019;i++) {
    # t3 a9 Z/ r. O) O$ k$ ?3 R        if(!vis) prime.push_back(i);
    ! ^% U) _. |+ [+ }. C2 i+ @    }! R& T9 h2 F7 H  l4 i. R
    }$ T# R4 t( x4 Z4 h0 ]: U

    % }3 n* ?4 J% z' O3 Tll dfs(int pos,int sum) {
    6 Y; J5 W! {2 I7 S* Z    if(f[pos][sum]!= -1) return f[pos][sum];
    8 o: L# }7 i, q2 ]* v! D( b    if(sum == 2019) return 1;# Q/ A8 X4 t/ h+ N4 O
        if(pos>= prime.size()||sum> 2019) return 0;' m% b* i8 G  [  k: v  g* y( L
    4 b1 |3 J- |+ E. F$ f
        ll ans = 0;
    7 t, N* f, j% @& ?1 B; m    ans+= dfs(pos+1,sum);// 不要当前这个素数
    ( `" s, P( N( N: A5 x! D    ans+= dfs(pos+1,sum+prime[pos]);// 要当前这个素数$ ]# t' y& E1 u1 v% m' Z+ m
        return f[pos][sum] = ans;
    , U/ D5 t+ \- m  p}
    ' a: h8 I& R* @$ o) {, L7 t  B% _* A3 x- N2 e9 A
    int main() {9 T! t& D$ p  a; c7 {/ h
        init();8 Q( [8 [$ v% k8 N1 d
    - `1 Q' P/ A, B, V. _/ @6 j
        mem(f,-1);% g# M- l5 R  U) p" C" a
        ll ans = dfs(0,0);8 j4 O8 L, \, T* M
        cout<<ans<<endl;
    ) a* S- N# g$ m& h8 r1 |2 X/ B1 ~# g
        return 0;
    ( N* a$ Q" q. u9 a, ?$ [}( n- g; M0 A! W8 G. X; m; n
    ---------------------
    5 @" z, y) A# _: C3 ?作者:nka_kun " O3 ]( B( `% M8 y: x0 E4 d8 o
    & D( K+ e1 \9 x9 m
    ( a; N" _6 G3 A" ^' P5 M
    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-9-28 03:45 , Processed in 0.425894 second(s), 50 queries .

    回顶部