- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 563353 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174229
- 相册
- 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组决赛题解第五题
% M n5 c; M$ H, _; @在一个5*5的方格上走边界点,其实也就是6*6的图,从左上角开始走,不走重复点且在12步之内走回左上角点,问方案数) q7 s. A7 o$ @2 k! T# N/ f3 h
直接dfs,需要减掉 (0,0)->(1,0)->(0,0)和(0,0)->(0,1)->(0,0),这两个路线都重合了& e7 T8 J: K9 C% }6 Q2 [
结果: 208-2=206 j+ V$ |/ F2 S7 m( D2 b. o
代码:4 \0 J# w' l1 }
#include<bits/stdc++.h>
+ y0 [9 w# Z. l+ H1 ?* i- S#define mem(a,b) memset(a,b,sizeof(a))
6 o5 g7 H5 E7 C0 r6 D, S" o8 G! \using namespace std;+ K t" t5 E F' r" _5 ?
typedef long long ll;# ~+ m" A' N: B# w: c2 M7 B
const int inf = 0x3f3f3f3f;0 S/ L, I2 E& M5 e- p J
const int maxn = 3e5+55555;
1 [1 u; Q6 s3 B7 c; S) fconst ll mod = 998244353;9 U/ |( T$ ? p) u _ j
const double eps = 1e-7;
$ e% X' k& C$ N4 p8 P4 }9 k' y! Y; _( R8 f: q- }/ a( ]! n
bool vis[10][10];
9 S3 ]3 H% ~. F4 y9 n3 Rint ne[4][2] = {1,0,-1,0,0,1,0,-1};- j& X" l$ @! P3 H
int ans;
1 s3 ~2 v8 T; \& a' b
. x/ _. m9 _2 D. V Y/ s! pvoid output() {8 G; a# [6 F( O4 d# G7 B7 }
for(int i = 1;i<= 6;i++) {
; _- G/ p- J7 s$ Z3 d for(int j = 1;j<= 6;j++) {
& x8 O* i, y/ l6 O4 w) V cout<<vis[j]<<' ';( T0 @2 j2 Q) N' i4 h& j
}2 ?" [ G/ R* V6 I' p4 f0 D
cout<<endl;
8 J4 l9 a2 C$ I, c/ b2 E, Y- g }
9 a* s3 z( I" {( l* Q8 B+ ^ cout<<endl<<endl;+ Z8 F2 ~# F$ Z$ s5 _* q
}
0 R: X/ k1 E! B3 W* n6 _' t5 W* L+ t
void dfs(int x,int y,int step) {6 Z! l( u l; J7 k6 F$ j
if(step> 6) {; P1 x$ z; W: n2 f6 G2 p
return ;
* B. w- m: y1 f. {" ] }
+ K: P+ D( M6 d' S. C if(x == 1&&y == 1&&vis[1][1] == true) {/ U, c1 @' K) y) g1 Y# R
ans++;
9 `4 C1 |" m- h3 b3 l5 r$ L output();
+ P9 Z: v3 C( o1 X return ;
3 }: g1 O: {: a+ m# Y+ d }
4 h w% \1 C9 k, Q! z for(int i = 0;i< 4;i++) {7 l; A. ?; |8 u, b
int tx = x+ne[0];, [& k) n- i2 \- t8 l& @; U1 S& E
int ty = y+ne[1];
# i0 V* r& ^7 n F8 K5 A. x9 C# O$ h1 u3 U
if(x> 6||y> 6||x< 1||y< 1||vis[tx][ty]) continue;
/ D. g2 B3 j5 e! t* G2 X( g vis[tx][ty] = true;
n1 }* V, x2 ? dfs(tx,ty,step+1);
1 P# a Q1 ~) @& t vis[tx][ty] = false;( n. d4 C5 B& T
}2 b* x( [% O+ l
return ;0 @3 a7 f$ B! W* p0 Z+ `! ~* l* g
}
4 z' c, Y- Z. m* H* d, r( x, y; W5 x4 P1 p4 X
int main() {; k( {( I1 g0 i5 ^1 t
dfs(1,1,0);
9 ~* k4 q, w4 \: j- j6 f4 y cout<<ans<<endl;
9 j) k" ~# @6 \+ H% |9 \9 @
4 O2 m9 ^ v1 v4 z( Z6 k return 0;# g# X' M8 T* x' v4 z
}- r! U i6 y+ q i% C$ a" n1 ~" W
--------------------- & z8 ~/ M- a* ?) r
作者:nka_kun + _$ D' P; q |! b
来源:CSDN # \7 E6 A" p' w" X( t& Y) }1 y
/ F6 ] _, K$ N: Q7 o; F6 x
. A5 s' X) _& n4 A' v |
zan
|