数学建模社区-数学中国

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

作者: 杨利霞    时间: 2019-6-28 15:58
标题: 2019第十届蓝桥杯B组决赛题解第五题
2019第十届蓝桥杯B组决赛题解第五题
* e0 e& Y$ G( {' g# B/ s在一个5*5的方格上走边界点,其实也就是6*6的图,从左上角开始走,不走重复点且在12步之内走回左上角点,问方案数
5 V: E0 D. n  [/ a& [. w直接dfs,需要减掉 (0,0)->(1,0)->(0,0)和(0,0)->(0,1)->(0,0),这两个路线都重合了# V" X8 P& j, z5 `5 a8 `
结果: 208-2=206   
9 u% K6 n& Z& f8 K代码:; E4 x9 W$ I  H" x0 o2 G/ g' N
#include<bits/stdc++.h>
- e  Y7 j# U: [/ q1 o# N#define mem(a,b) memset(a,b,sizeof(a))+ w9 J! k5 \& @* N% V
using namespace std;* ~# k8 _4 j# ^- _4 _4 g3 A0 U: e
typedef long long ll;* H" g3 I5 X0 j7 ~1 L; J
const int inf = 0x3f3f3f3f;& a2 `8 l/ M& v6 g
const int maxn = 3e5+55555;# j* s7 a' k  a# i5 u$ }' d! {# u3 n
const ll mod = 998244353;
4 ^! x7 F8 L4 L. z' rconst double eps = 1e-7;( g1 S  a& g  ^
! p8 I4 H1 Z, \9 D
bool vis[10][10];
# s" k) Y; D1 v% r" }* gint ne[4][2] = {1,0,-1,0,0,1,0,-1};
- e& M/ S5 j: P) }int ans;
4 d  s' i! q5 K' m
5 d" X7 L+ w- S% Y5 Hvoid output() {0 n9 Z3 r: O% Z9 d8 F$ k9 m
    for(int i = 1;i<= 6;i++) {0 z# c! a9 ]& [
        for(int j = 1;j<= 6;j++) {
0 X! G1 H6 Y( |5 ^+ f! Z4 ~8 d3 R            cout<<vis[j]<<' ';
2 C$ `' ^. T/ @        }
2 P1 D+ _: U1 e% b        cout<<endl;; Z3 M0 u7 d" n! Q8 h0 F( m
    }
) C# W7 v5 U" s    cout<<endl<<endl;
6 k( s1 K& {1 F' G, ]# k}2 Y& ^6 X- a6 n, T* Y

8 |) |6 j( }' }3 vvoid dfs(int x,int y,int step) {
2 `" `9 ~/ j1 D  h: ^    if(step> 6) {3 L0 a$ y! X0 F, f& L: n
        return ;2 x1 W$ B/ S8 A. m" U
    }
0 m8 R" A$ D8 M( p+ T5 J    if(x == 1&&y == 1&&vis[1][1] == true) {
3 c% z! w/ E* U- M  I8 v        ans++;
8 [; {, O: b  ~; R8 {* R        output();
! T- o7 [$ \4 s4 c% B        return ;
; L+ c. o9 [3 O1 N    }! m/ Y4 z& L( }' C
    for(int i = 0;i< 4;i++) {
4 u+ [' T# `  y. p% A8 w& J        int tx = x+ne[0];. H' L# I. x+ q" p; W
        int ty = y+ne[1];
# n$ N0 b+ ^) |0 \4 S- w- Z6 M" {2 ^% J$ E
        if(x> 6||y> 6||x< 1||y< 1||vis[tx][ty]) continue;
0 k/ J0 |" P1 B  c" L        vis[tx][ty] = true;
% x. P) B& h+ T$ B, H        dfs(tx,ty,step+1);
% i: Q( J# k7 L* `1 ?        vis[tx][ty] = false;: |- T3 N6 Q' Y" `- v
    }
3 j" ^! ]9 P2 l/ X$ Y    return ;' K, }1 `1 p- B; p( @/ ^8 z
}$ ~! m8 W4 M0 W# t
6 Q5 V! s! D+ y. r! q. z
int main() {8 t0 v9 ~/ D/ z* f  s
    dfs(1,1,0);
7 k/ u5 }/ [) @" x    cout<<ans<<endl;1 y- F! ^" Z2 R8 \) B- G
/ U, y, F3 M3 \2 d5 v9 F
    return 0;
. F; o" |$ u3 O, L& G6 N. ~5 T}
9 m+ R2 v9 P" b7 F0 n--------------------- # b3 I# D8 Q, U0 C" m
作者:nka_kun 2 ?  x' b# C+ \5 g& T, L
来源:CSDN # e8 W0 ~& V8 x6 v" \1 Q

" t5 J  U& }! S0 ^& @# a% |2 T9 Y3 C) m% B& M& M1 s! d





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