数学建模社区-数学中国

标题: 2019第十届蓝桥杯B组决赛题解第五题 [打印本页]

作者: 杨利霞    时间: 2019-6-28 15:58
标题: 2019第十届蓝桥杯B组决赛题解第五题
2019第十届蓝桥杯B组决赛题解第五题
9 n0 m( X( E0 {$ G6 _7 \在一个5*5的方格上走边界点,其实也就是6*6的图,从左上角开始走,不走重复点且在12步之内走回左上角点,问方案数4 L, ^' t0 R3 Y* a2 A+ \1 |
直接dfs,需要减掉 (0,0)->(1,0)->(0,0)和(0,0)->(0,1)->(0,0),这两个路线都重合了
& g0 w1 O. Q0 o: W7 S结果: 208-2=206   
! S, K# o* W% K9 Y5 W: O2 D" }. H* H代码:9 I  u: c! O- \" Q  n6 _& m
#include<bits/stdc++.h>- m& R% f( b9 `; o: e
#define mem(a,b) memset(a,b,sizeof(a))" `7 j' E$ m) [- z" z# Z
using namespace std;
8 |" Y" E! k. I6 `, Y! G3 B6 ctypedef long long ll;
# H8 z$ ~) W( U% m; N3 gconst int inf = 0x3f3f3f3f;. {/ p& G3 R1 l6 w' H+ V" ^- u* B
const int maxn = 3e5+55555;
+ V# ~' @% j/ I8 e$ |" uconst ll mod = 998244353;& j$ A" z+ H% ?
const double eps = 1e-7;+ D! J% S' \3 H) X2 e9 Y
( }& i6 [: [" g( U, j9 `% B: [
bool vis[10][10];: P# \" o5 ~& v% O
int ne[4][2] = {1,0,-1,0,0,1,0,-1};
5 h; v) R9 b  x, k  i! Iint ans;# f0 b/ }6 s0 q, K7 H! U, V

' `; a" D# C3 X: x* vvoid output() {
. o9 {+ {/ L& @' }    for(int i = 1;i<= 6;i++) {
+ c+ w1 O% e4 W8 N1 \6 {* G1 g        for(int j = 1;j<= 6;j++) {0 j, B, i$ G  b( g8 s, I' s
            cout<<vis[j]<<' ';
, F5 U2 d. m0 @. i        }
6 m+ v" U, l% l) k3 Y, s* P% d        cout<<endl;- l# J/ F- V6 q* v
    }2 f4 s9 n; t5 x/ f7 X2 C4 R1 ~3 k
    cout<<endl<<endl;
7 ?5 u7 B) q$ \  O2 D1 i2 _1 H8 y}" o2 y0 u5 _1 e

# ], G7 r, }7 Bvoid dfs(int x,int y,int step) {; L. e* c( ]2 `1 M/ y
    if(step> 6) {2 z" R1 j" u7 N5 X! T
        return ;
9 ^6 u" ^4 @5 ?# S( g/ @    }
6 @  i& o# [! y, [! Y! n    if(x == 1&&y == 1&&vis[1][1] == true) {
$ w! f. S& p( ~% @1 f' Y0 r2 J        ans++;
) y: X; N2 s; b        output();
2 \. `6 x* c) M! e5 w        return ;, L1 N' N" I' N8 `8 _
    }
3 H* B. h6 S/ I8 C    for(int i = 0;i< 4;i++) {  l; A- o6 g3 q3 b* ]: g& x7 }# b
        int tx = x+ne[0];1 i1 q9 N' |" I
        int ty = y+ne[1];
# Z4 N8 ], n& C2 {  i. @' m" @! l, m5 T  Q6 T' |+ p3 t$ e( \( j
        if(x> 6||y> 6||x< 1||y< 1||vis[tx][ty]) continue;: u  s; t" e: j$ W7 F" e& R
        vis[tx][ty] = true;
' Y6 R1 t0 D. o8 `8 m. E" Y& s% L2 S! K        dfs(tx,ty,step+1);! M+ K9 R" H5 I* n# Q
        vis[tx][ty] = false;; l2 F. a, }$ @
    }
  m# a$ I  D& C  t" Q+ ]: c) u    return ;5 m: \% ?) L( r8 E6 l: H9 ^
}/ q& w. U7 b% p) G

0 O% [5 k5 X, Xint main() {
) o9 j3 D8 K* B' L* ^( P    dfs(1,1,0);
2 e6 H- z. [8 b    cout<<ans<<endl;
6 D# [! |0 R7 R) j, j2 z+ ?/ Q  O; I' N8 b
    return 0;3 v6 \- i# A! z
}
2 z# w1 K1 y- g---------------------
1 W* g  B# P( z  \作者:nka_kun
, f. h  e, b; e9 M- D来源:CSDN ; n0 i6 N* _+ D/ G4 S
* N- \( Q4 }$ _( u  d, Y

( T5 }( L4 q9 h9 Z




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5