- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 565619 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174909
- 相册
- 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组决赛题解第五题
( L/ u1 Q6 o+ ]5 Q( p5 j. a在一个5*5的方格上走边界点,其实也就是6*6的图,从左上角开始走,不走重复点且在12步之内走回左上角点,问方案数, b6 A/ F( [; i
直接dfs,需要减掉 (0,0)->(1,0)->(0,0)和(0,0)->(0,1)->(0,0),这两个路线都重合了) `. U* d4 _2 ^9 O/ C6 N4 u6 ^3 I
结果: 208-2=206
c# T" o+ ]5 v" ]) u代码:) }4 |8 G1 |5 a& ?0 s
#include<bits/stdc++.h>/ p0 ^; U/ ?4 | c9 z
#define mem(a,b) memset(a,b,sizeof(a))% Y4 c0 b+ p' x4 ~% I
using namespace std;/ n% h, ]$ a; k# A+ _' P* I7 B
typedef long long ll;, Y/ M1 w, g8 Q" Q2 [( d
const int inf = 0x3f3f3f3f;
: V* C3 `9 j8 T/ H+ R1 ~const int maxn = 3e5+55555;* A" A/ m% s2 X/ u3 g: x
const ll mod = 998244353;
6 T3 C+ Q0 @( x' k' P1 L( nconst double eps = 1e-7;$ w/ D8 E( ~7 D7 Y5 v3 h* s6 U! P
, l8 ?, j- ?9 f& n8 T+ u! g0 k! mbool vis[10][10];
K- m! A ^2 ~( u$ d8 lint ne[4][2] = {1,0,-1,0,0,1,0,-1};4 g! m: A- k: u3 ?
int ans;
! j% g4 ^2 B, w6 s
, ]; r: U3 _/ s! O& L) x; Hvoid output() {
5 V& v3 s, f" H for(int i = 1;i<= 6;i++) {4 z) D0 m+ i$ s
for(int j = 1;j<= 6;j++) {. @1 W- Q3 e& p, h, K
cout<<vis[j]<<' ';6 k* D7 D8 ]/ x7 R1 _
}
1 J7 @% g1 b. f" L; E' R! \ cout<<endl;7 S* f+ f3 s' K X5 n
}
5 \5 g2 I. H3 s. c) h5 \8 q5 H cout<<endl<<endl;
! {" M$ a* h$ N p% N1 c}. P/ ], h' U! y3 h) I5 Y" P
5 [. W; b# U/ x! M; F; Dvoid dfs(int x,int y,int step) {/ |2 g" Y# H+ ]5 N* [
if(step> 6) {: V) J5 Z& y! M G. I+ ]) x6 z
return ;& i( I1 P9 _4 g
}
* x) W) v+ z" s if(x == 1&&y == 1&&vis[1][1] == true) {
/ A8 w. T; {0 k1 x2 R" H0 q6 }9 o ans++;
* L, p& W3 N3 t6 O9 n/ {$ S output();
( N# C2 o: [7 ]8 ^ R1 y return ;
$ [1 ~! P- S$ P2 M }' m/ Y( p* K% ]/ d. p
for(int i = 0;i< 4;i++) {
& P0 m: |$ a# a/ J' E6 i% m# V int tx = x+ne[0];0 G! ^- _* }" E* s4 H% Q
int ty = y+ne[1];& M/ H! z* H0 @& ]: J# s# ~" O
7 f6 C; W7 d# Q+ ` if(x> 6||y> 6||x< 1||y< 1||vis[tx][ty]) continue;
! b# n; F& {5 B8 Z$ ` vis[tx][ty] = true;& o. R& U/ f: V
dfs(tx,ty,step+1);# g$ P+ W8 v& ^7 f4 W5 L
vis[tx][ty] = false;
' O; Z$ R: K6 d7 v0 d }7 `) Z6 _9 |: @ A( Y
return ;, D1 X* v$ L% g# u
}
5 U z7 q" P; E( W2 Z9 |
6 @5 ?6 h5 w- A2 ]' k: i) `int main() {: n- Z6 i) S; `( x9 j
dfs(1,1,0);
2 n2 G$ V5 l# f cout<<ans<<endl;
* y% p0 ]; c. Q6 o* G! n
1 w+ ^. |2 S3 B6 b return 0;' |' A: V$ u J- q
}
+ t v% W' Z, F--------------------- - ^4 a1 a7 q; E- P! Y+ Y7 \
作者:nka_kun
, O. p' [& F: l, [来源:CSDN 8 d4 B3 o; {4 Z1 B
$ E: N( z* ^ y+ J* M& L* I
3 ], J- t; k5 Y- d |
zan
|