- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 563322 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174219
- 相册
- 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# j. u C4 f/ w" E* f
在一个5*5的方格上走边界点,其实也就是6*6的图,从左上角开始走,不走重复点且在12步之内走回左上角点,问方案数
- L4 s* K# Z2 p f' \直接dfs,需要减掉 (0,0)->(1,0)->(0,0)和(0,0)->(0,1)->(0,0),这两个路线都重合了
: B. x- J% }1 S8 ^结果: 208-2=206
/ h" X6 V4 d6 E1 A9 E* r/ D代码:
8 [0 d1 Y, r$ x$ E#include<bits/stdc++.h>
5 N# z" ]! Y8 Y8 _: k#define mem(a,b) memset(a,b,sizeof(a))8 n! d, o5 {; U. \2 L* i* ~4 L
using namespace std;% R V- S B- t% q) |
typedef long long ll;
( q9 V: L3 t: _9 J- Xconst int inf = 0x3f3f3f3f;
4 t8 u: B" w) C$ oconst int maxn = 3e5+55555;; A2 t& G' J+ G/ n( M( @9 h
const ll mod = 998244353;
h" Y* h6 @# Vconst double eps = 1e-7;- Z! A0 i. H% X, x2 q
# G* A( C3 z0 W. {( Y% F
bool vis[10][10];
8 J+ v+ L3 w; u( ~" Qint ne[4][2] = {1,0,-1,0,0,1,0,-1};7 k; B( c3 g- ]- G6 `" F" Z% b" S0 m
int ans;+ C8 p" f: R. G8 Y
$ l# n' N8 Y. }: \, v8 z4 y$ |; H
void output() {4 e3 k) B. T! u
for(int i = 1;i<= 6;i++) {+ p; X1 s; K1 r# o# P% q5 i
for(int j = 1;j<= 6;j++) {, c+ c: ~; o' J1 q
cout<<vis[j]<<' ';
! y5 x8 s$ y$ O l8 h# v }: y, a9 S5 O% Y1 {/ m8 E& n
cout<<endl;& l- X( F5 J5 |" t
}
2 R1 V8 a2 z- {8 z* T7 `7 E cout<<endl<<endl;
5 c! O; z4 x/ B- I}
& l; T/ b+ L/ A' g; ^( v' t c' h% C4 k- U0 k" B+ }
void dfs(int x,int y,int step) {2 r' o* K# a& _1 M: v; A K
if(step> 6) {6 \3 G8 `) G* c
return ;
0 J5 p7 U" A: o7 N' y7 a }" }1 z9 e9 Z8 P# V- [
if(x == 1&&y == 1&&vis[1][1] == true) {
/ s$ G: r6 P8 ?$ @+ h ans++;" M1 h9 X% P% A+ G0 T( q% I/ N
output();/ b* F& A+ k" o$ S- E* O4 T9 V
return ;& U; _4 k. R# b+ U8 f# i5 J6 R8 Q
}
- w+ q/ u% G$ `+ u for(int i = 0;i< 4;i++) {
. o3 W2 @; T& X! `: N int tx = x+ne[0];
" X1 P L, c; x+ j4 ?( \ int ty = y+ne[1];$ I1 B+ s1 o& Q4 \. e( U
; E1 Z4 k h2 q2 m; d if(x> 6||y> 6||x< 1||y< 1||vis[tx][ty]) continue;
" r3 `* f. p6 w. ]+ s( q vis[tx][ty] = true;
& g+ V; D" k6 I% l- Q dfs(tx,ty,step+1);
& J/ C7 H! K, `% e" d" R- \$ X2 I2 T% z vis[tx][ty] = false;
; U2 ]6 J* C! k/ ]& k! O* S }
$ ]+ R5 ]; |2 o y7 s: X1 W" \$ } return ;4 [8 h) Z, Z- x1 A2 @
}
4 F* t3 ]8 G, a+ ]$ y \% s3 i& L( A; A4 D
int main() {6 q& O# Q4 ]) C7 e
dfs(1,1,0);
+ ]" R1 k5 ?) I2 L$ j, o8 @ cout<<ans<<endl;
5 u( |' ]2 w* q) z) I
3 d x3 f. q) s A8 @, o2 U. _ return 0;
* O4 j: p1 y/ a$ W; Y7 \# M}9 \' ~' X! m: f; Z4 C5 g8 e
--------------------- ! [5 W0 a- J9 ~5 O
作者:nka_kun ! K B2 p6 d/ ^$ c1 a. I; }
来源:CSDN 3 ?- D! d% Q# G1 k3 n
: S. }0 Y* `; G3 {1 N
3 Q' @/ J+ j4 P+ c1 r4 `( n
|
zan
|