- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 563314 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174217
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
2019第十届蓝桥杯B组决赛题解第五题3 S, `; m7 L# S2 l
在一个5*5的方格上走边界点,其实也就是6*6的图,从左上角开始走,不走重复点且在12步之内走回左上角点,问方案数' N% @! O2 H5 Q0 p/ k. _- U- Q
直接dfs,需要减掉 (0,0)->(1,0)->(0,0)和(0,0)->(0,1)->(0,0),这两个路线都重合了3 x7 t; C6 A; g
结果: 208-2=206
- g0 w, p8 I, ~7 `代码:
' H4 w6 ?1 v7 X. E( ]0 N#include<bits/stdc++.h>
" W# H' V* c( D+ K c#define mem(a,b) memset(a,b,sizeof(a))
+ K/ O+ K- X1 susing namespace std;3 b3 n/ Y) F' V _# e w4 c
typedef long long ll;) g) H6 e7 [5 ?5 }1 M
const int inf = 0x3f3f3f3f;
' Z: T f% P" J: f9 V0 |/ Xconst int maxn = 3e5+55555;
/ z+ Q) w5 A+ Uconst ll mod = 998244353;1 |5 T, f& Z9 D$ c. c/ P- ?
const double eps = 1e-7;
2 U0 X. X0 K2 t( v# b& n' l/ V) E$ ?! @+ @: f: Q; b
bool vis[10][10];
. W# [: O9 m, C/ pint ne[4][2] = {1,0,-1,0,0,1,0,-1};
# J' p( c' S0 Z6 B) h# y/ Mint ans;
6 ~6 j, m U. X/ q7 Y/ [. M
/ o; k; A& [& s( Zvoid output() {
" f; e' g/ Q9 i: u, ~ for(int i = 1;i<= 6;i++) {- P. `8 r' t3 @/ N0 J% _" m; J
for(int j = 1;j<= 6;j++) {# t2 i. R% x- U% L8 r7 U; ~* s3 A
cout<<vis[j]<<' ';1 ?- m% c5 U8 m% `7 G7 `) ~7 p
} W* M2 P% h" Q, j% \7 @, M& s
cout<<endl;
3 I' I* @7 i1 ` C/ C* {6 j }. l+ s: t1 t3 O$ K
cout<<endl<<endl;# ]6 ?9 E& j. d8 C8 z# g
}6 m6 J5 U: l- y
0 B% W/ L+ E+ G6 q! d/ k) q* tvoid dfs(int x,int y,int step) {# b8 e% E4 h w9 x
if(step> 6) {0 T# f( Q5 k& J
return ;9 n; [+ T( P2 L: b7 D$ ~
}7 \2 h" Q1 B V! x" }
if(x == 1&&y == 1&&vis[1][1] == true) {
0 F: Z- s2 N3 l, _ ans++;0 n! v) `3 F! h# X7 E# S( s* D/ O
output();) ?, n' S. ~' Q d& H/ M7 m4 {9 C
return ;, r6 @. z0 |2 Y7 ^. ~7 r/ l
}
& h& O$ H7 N$ V9 D for(int i = 0;i< 4;i++) {4 H6 O3 |% W A; c8 T4 g: T
int tx = x+ne[0];: D6 l. B& y( h X: K) v
int ty = y+ne[1];
, S# x! C7 Z4 v; q# M! e6 `" M& m: z* @# l
if(x> 6||y> 6||x< 1||y< 1||vis[tx][ty]) continue;' C( c& e, C5 w6 A/ o
vis[tx][ty] = true;; ?1 `, D0 X" W5 u& U( x/ r
dfs(tx,ty,step+1);; X% a! _7 n9 m: U
vis[tx][ty] = false;
8 s- \7 ?- i" }: B% k' c% w- } }
8 D8 g7 M( D$ V, j: I) Y return ;5 T& A% l, x0 ?* O. L, T2 B) M
}
G6 c5 A2 }1 K1 ?0 c
1 T+ k2 Q/ }1 k8 \int main() {
3 D9 K/ X( Q1 a dfs(1,1,0);
0 c$ ^4 K! `2 ~" e1 t- J cout<<ans<<endl;% {- Q& l* S' I
- {- r" b; h+ i3 D" z/ z5 U3 [ return 0;% q) [$ I. G1 a# w+ u: m1 N9 {
}8 X7 L( u& A( a, ~+ x3 U
---------------------
, K4 \$ u' m. _/ g" `. g作者:nka_kun
. a, b7 q P/ r, M {. p来源:CSDN * _; ]' n- {" E8 |" |2 b0 Y6 B
7 s G0 e8 W( S, d, z* h/ B
- ^) L2 W% P, D" I |
zan
|