- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 565618 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174908
- 相册
- 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组决赛题解第五题
* A {8 k# \& ?, ^) T8 C! U3 Q在一个5*5的方格上走边界点,其实也就是6*6的图,从左上角开始走,不走重复点且在12步之内走回左上角点,问方案数" k& c ~) J4 ^3 R* S
直接dfs,需要减掉 (0,0)->(1,0)->(0,0)和(0,0)->(0,1)->(0,0),这两个路线都重合了
6 ]# x9 l7 n; A' ?+ Q) F结果: 208-2=206
% R& f) K' X3 g8 L/ I代码:
+ ]* S! ~- C y/ S#include<bits/stdc++.h>1 C" C* R+ a* ~, b/ d" u; a
#define mem(a,b) memset(a,b,sizeof(a))& @! y8 e' G* ~" N- D9 g+ p
using namespace std;: I( I& M% s# m' t7 A
typedef long long ll;6 W% f: F+ S$ X9 ]
const int inf = 0x3f3f3f3f;% w i' [% u5 s2 j- y' @( x
const int maxn = 3e5+55555;1 U6 A9 A9 b' ?$ r6 f3 ^
const ll mod = 998244353;
6 {" D, C( M- l8 h! Yconst double eps = 1e-7;
3 q% E3 A, b1 S# U/ n# e2 l* ?. D% t) m/ ]# ~+ Z0 a4 f
bool vis[10][10];. ~6 E$ L, p; G9 w( x* D+ F
int ne[4][2] = {1,0,-1,0,0,1,0,-1};
4 @3 ]1 O' [) t" E3 C2 Xint ans;
$ w9 ?1 @# E7 n) W; p1 z6 z+ a0 `# A$ Y9 L5 C) Y
void output() {# Q b4 @/ N5 R! S0 ~
for(int i = 1;i<= 6;i++) {
4 h/ U; `; k9 O7 H& P: N for(int j = 1;j<= 6;j++) {$ R; O1 ^* L9 ^3 X6 T
cout<<vis[j]<<' ';. ?, f8 {& ]3 h# O9 n6 }3 D! n- m
}
0 p2 t& ]2 F; L. E! B cout<<endl;' C4 _2 Q R+ C) X
}
2 [! w/ f0 E+ g" y% x3 K9 h cout<<endl<<endl;
: ~* f8 v0 ~$ d}
( C0 \8 z# }6 ~7 A; e, ~, \/ L4 A& G
0 c2 \* e G) N2 D8 B) Xvoid dfs(int x,int y,int step) {
* Y i) x$ t3 B if(step> 6) {/ M1 i' \; S, u% \5 }, x
return ;
' _% @# N( c. L( {" y) } }3 [: ^% ^$ R% \* z5 N0 B1 ^; X
if(x == 1&&y == 1&&vis[1][1] == true) {4 |! _% w: D2 N$ v( ?* B0 W
ans++;
; s8 D* n8 ^5 t9 E5 G6 p% T$ d output();- p: e3 A5 f7 s I' o' V& X
return ;" ^/ z5 X) _1 x. b
}
3 V4 V" J, ?, z6 I for(int i = 0;i< 4;i++) {" J, p0 O( R9 i7 U: M
int tx = x+ne[0];
9 U/ O) |. @4 A) i* \2 @9 {4 ? int ty = y+ne[1];! }2 B8 |7 X$ d: h/ G# L# J- g
; l& Q- Q, u) k2 H7 L. a ] if(x> 6||y> 6||x< 1||y< 1||vis[tx][ty]) continue;5 R# p/ L3 _. z" S5 N
vis[tx][ty] = true;# W) r: c( i. J, J) R% a
dfs(tx,ty,step+1);
5 ]' I0 \% n+ N4 G) h vis[tx][ty] = false;
3 |0 ~# r& b) O3 T2 P }
! G: T( b# `# o. Y return ;
9 C, ? E6 ^8 F1 F, z}
+ K6 G3 T2 z5 q
1 q* G4 I( ^' Gint main() {. ^4 ~! }4 K! u% m j% P
dfs(1,1,0);* ^* n$ i) K& @" l: Z6 `! H( A
cout<<ans<<endl;% s) ^* \5 ?$ v) T, h
j" l# Q! V# _- C- {2 ^6 p' g$ C
return 0;; R, Q" q7 u* D y5 |8 s1 }* z+ @# B
}
# t" P0 K; I" g' a, b5 m) R+ I---------------------
: x1 W) S) z8 a% F, w3 N. P2 F作者:nka_kun 8 ~! S- @/ w( D
来源:CSDN
' C5 W% m/ V0 x3 v. T" f
! |3 X9 y$ {0 z7 G
" b9 O; x: Y% ?0 e" M& V2 J |
zan
|