QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1950|回复: 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:58 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    2019第十届蓝桥杯B组决赛题解第五题
    7 W! x  X( x* K7 \) d在一个5*5的方格上走边界点,其实也就是6*6的图,从左上角开始走,不走重复点且在12步之内走回左上角点,问方案数
    8 _. J1 y- F! V0 u% `- m7 ^直接dfs,需要减掉 (0,0)->(1,0)->(0,0)和(0,0)->(0,1)->(0,0),这两个路线都重合了
    9 O& m( D+ ?& t2 G结果: 208-2=206   
    ; u/ Y- G: C! x0 m代码:
    $ x8 ^# X  a, c; R: D( F8 x#include<bits/stdc++.h># L; c  D0 M; q- W# U0 B
    #define mem(a,b) memset(a,b,sizeof(a))& z5 U4 p. g) G- O; [9 `. L  p" m8 k
    using namespace std;2 N) S" J$ l+ Z& O. t' u! j
    typedef long long ll;- T/ c$ [) Q* t' h. J
    const int inf = 0x3f3f3f3f;
    % H1 B+ `# ~+ E  Y7 Qconst int maxn = 3e5+55555;
    7 l' V+ w+ l2 w  y6 K  @const ll mod = 998244353;2 {  Q' e- P  \$ ]! c
    const double eps = 1e-7;
    * r: W" g2 L# F7 N5 y0 P) D2 C4 m1 |$ E
    bool vis[10][10];
    ( j' [6 a1 f! ?# Y; j7 Gint ne[4][2] = {1,0,-1,0,0,1,0,-1};6 q$ J/ D$ Y, o/ h6 U, {/ L
    int ans;& P! `8 P, X7 X  U' S; s
    ; K3 c- k1 d# A5 `' z
    void output() {
      J+ B1 `  l- U/ k    for(int i = 1;i<= 6;i++) {
    8 W2 k4 M! G/ G+ p* X! h        for(int j = 1;j<= 6;j++) {
    9 K+ q6 r, l, I$ ]            cout<<vis[j]<<' ';
    4 I& |/ a, N1 f1 A        }8 [+ z# E  [! `9 l  q2 b- R# D8 w
            cout<<endl;. q+ M/ {1 m# n. w2 o
        }
    7 O2 S4 O1 {4 U# v8 D" o) {  B    cout<<endl<<endl;
    " z  I. W9 l! w}7 A8 s8 w6 W  @! \9 k) F5 l
    * Q; u& ~8 Q2 T- i; x, L$ X7 w7 W. `
    void dfs(int x,int y,int step) {. @$ x% {& {3 c2 B5 D2 @
        if(step> 6) {8 u0 \- A3 `8 L9 O  T) N
            return ;
    6 w, t5 x! n; l3 z- ^; J    }
    ) t8 F2 u, K! ^+ b    if(x == 1&&y == 1&&vis[1][1] == true) {  ?6 \# N9 D' g2 r( v% ~
            ans++;: B, `; M$ m" s' Y4 \! v
            output();
    1 S2 c' U" }% v( Z5 n1 m; T        return ;  z# J( C  d/ S5 S% b) v5 v
        }
    * p. p5 F" x$ d" n8 W9 W    for(int i = 0;i< 4;i++) {
    1 P" d6 g( }1 ^- N" E2 p        int tx = x+ne[0];
    - |6 [! D5 G/ K) J2 w4 X        int ty = y+ne[1];7 x+ E* X0 j- d

    " h! a7 ^( a2 R/ L. C9 J6 t        if(x> 6||y> 6||x< 1||y< 1||vis[tx][ty]) continue;
    1 q9 i' |& o1 q2 j4 r        vis[tx][ty] = true;& t. T! z3 O6 }) `. n" g! h
            dfs(tx,ty,step+1);
    * I$ w0 o! ^7 L        vis[tx][ty] = false;
    ! `; f7 [/ J" Z6 ~1 C: d, X    }
    1 i: h+ A7 B# S7 _    return ;
    6 d$ M' B. T0 S  R6 P; p/ c}
    5 A5 M  A3 i# |" O9 [* b# l* t% _( W  z, I( d# V) V+ |
    int main() {
    3 W8 T2 `# J8 q- G, e1 g! F, H    dfs(1,1,0);5 v% u( B5 O9 l: I  S
        cout<<ans<<endl;
    - `+ a0 W$ |3 K4 j0 t+ B' Y0 o* O0 C& z! A
        return 0;; J/ e2 w; R0 r2 Z. t
    }& z' a; e5 e4 W; @9 Y
    --------------------- - L' X3 v$ m) L2 w. e
    作者:nka_kun + u9 H) n( C% U0 Y  r- L
    来源:CSDN
    , v7 _+ y. D* q% z( ]- H8 ^
    8 R# G' h( k* A; G
    " f, k; w- W1 U6 P
    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-29 10:10 , Processed in 0.579979 second(s), 51 queries .

    回顶部