- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 564681 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174627
- 相册
- 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组决赛题解第五题
; K, \$ a: e# v; A' h0 }: ^; E ]9 w" _在一个5*5的方格上走边界点,其实也就是6*6的图,从左上角开始走,不走重复点且在12步之内走回左上角点,问方案数) Z4 G; q" n1 g. S
直接dfs,需要减掉 (0,0)->(1,0)->(0,0)和(0,0)->(0,1)->(0,0),这两个路线都重合了
6 u# t6 Y& R1 ^6 j$ s结果: 208-2=206 : I& ]+ y# ^( w) U6 I
代码:, o/ [6 }& M+ k Z' |
#include<bits/stdc++.h>7 c! V4 L2 U/ N
#define mem(a,b) memset(a,b,sizeof(a))
3 g2 y* Z3 [# P. s- u8 fusing namespace std;0 [% [# D; n- w; B* q
typedef long long ll;' M+ m9 o8 q/ \" L/ N( s+ h1 [
const int inf = 0x3f3f3f3f;
2 X0 e4 r5 i7 _0 C1 O1 gconst int maxn = 3e5+55555;
2 {1 z+ P: A# [* ?6 Tconst ll mod = 998244353;* p; f+ g- ?+ O
const double eps = 1e-7;
6 I& K* z- O: J& V: e: L7 H% T5 C- B( ~4 v: [8 S* S8 } `
bool vis[10][10];
. z8 x* z/ v( Y4 tint ne[4][2] = {1,0,-1,0,0,1,0,-1};
7 |$ _& j1 R) {9 J+ r6 q- b7 Cint ans;
8 e T5 k2 i' s* r8 ]
8 P5 S, t. b$ _, T- o* xvoid output() {4 j4 A( V0 } p2 j- I- u0 `
for(int i = 1;i<= 6;i++) {5 K# _/ u7 ~$ }
for(int j = 1;j<= 6;j++) {
' n+ g& \4 a, D2 x7 c1 Y$ M! v7 @ w cout<<vis[j]<<' ';
2 n# M. C# O0 E: | z8 E }! g, k7 S$ Y [ j" I9 M7 P% v8 V
cout<<endl;' ` f! L% @+ m( i
}
* S+ |8 {4 g, k- d1 |9 N, I cout<<endl<<endl;/ @6 ]/ q! v( R
}
7 m3 `# R/ K; q; f6 [4 o d& J) r% A. j$ U, T- w8 f4 J0 i x# b, d
void dfs(int x,int y,int step) {5 [$ C' t M3 y' R, K
if(step> 6) {
3 f4 O6 W! C2 H6 Z# R return ;
" @ I% Q5 p1 Y }! ~) d2 L1 L0 [* w0 V
if(x == 1&&y == 1&&vis[1][1] == true) {- G! N: R) C7 v& j! Q q7 n
ans++;7 `% q& K8 K/ e. d; M# a
output();
4 f% k" |' G4 Y/ ]- u" ~2 f return ;
2 q) R& i) i0 l e( ] }5 G% i6 R3 N# ?/ o( d& l; H4 R
for(int i = 0;i< 4;i++) {* c; _9 Z" W7 o3 E: @# i- c
int tx = x+ne[0];
: J9 Q+ k; P+ t# X. ]1 X/ d. g int ty = y+ne[1];
/ j3 U# A# r/ K4 R, W) V8 ~7 Z7 p
! Z1 V7 y+ @$ `( [0 ?8 ~: T if(x> 6||y> 6||x< 1||y< 1||vis[tx][ty]) continue;
' ]" _2 C4 j! Z4 i vis[tx][ty] = true;
) k5 a: `6 Y6 P. |( m2 N dfs(tx,ty,step+1);. D! h G5 v- ^! [& ^. f( E
vis[tx][ty] = false;
2 M. E& P9 B/ d! }. a2 h5 \3 J6 w }
6 I. y7 z' t1 R8 k return ;# S3 F7 f7 S& R1 J' s s/ U
}
6 e1 O1 f( @: x, l5 i2 ^! {# L$ B
+ O9 }0 d: N, nint main() {6 U9 F+ k3 o- W$ ~ r
dfs(1,1,0);0 s1 i: V% ]9 ^& P" Z
cout<<ans<<endl;
# k, c( f0 O, g9 q! c8 j- P: ^( [& E
return 0;4 K8 [. ^! O c+ W4 |
}
, z9 R) W' F" ~--------------------- 2 K* L6 v: p$ p3 z/ R/ P
作者:nka_kun 4 i1 t" A9 y7 b* I
来源:CSDN 9 d+ Q& D5 s( X! |! q( d3 X. o
& }* g) `) u. [5 }5 Q1 \- o
; I. v5 ?- P5 G |
zan
|