- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 565670 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174924
- 相册
- 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组决赛题解第五题8 X3 `6 c0 G5 Q3 J _
在一个5*5的方格上走边界点,其实也就是6*6的图,从左上角开始走,不走重复点且在12步之内走回左上角点,问方案数: Y! c! T0 X& [ c6 k5 ]
直接dfs,需要减掉 (0,0)->(1,0)->(0,0)和(0,0)->(0,1)->(0,0),这两个路线都重合了( F, H; m) x0 y* L$ {! ~& {
结果: 208-2=206
5 s3 b" s7 {: B+ d# |4 C n) W代码:, x T: @$ o6 J+ a1 ?- ]
#include<bits/stdc++.h>+ p8 |! R5 y7 l$ q( B: E- O& {7 g
#define mem(a,b) memset(a,b,sizeof(a))) y# o: p/ U, g$ `
using namespace std;" V& R* ^# G& f. W: d- G
typedef long long ll;
' O7 ~# R7 u' i0 z8 ^- Hconst int inf = 0x3f3f3f3f;
, ^1 s0 j6 p% e* U" x* Hconst int maxn = 3e5+55555;
# Q; a0 @+ n' J6 hconst ll mod = 998244353;
; @3 b. i8 c6 V; n1 A0 ^const double eps = 1e-7;
- S, ]# H3 H$ I. y9 j* p' @2 S1 T
bool vis[10][10];9 L1 |1 Y1 X, h) u L
int ne[4][2] = {1,0,-1,0,0,1,0,-1};0 A+ _0 T7 B0 A+ W4 n* t$ Q& l
int ans;; h% G1 q4 a' {
4 K7 { R- L6 }; G: i
void output() {
3 O' g- E5 B2 u for(int i = 1;i<= 6;i++) {8 q$ w1 U5 n* e# ]: ?3 y% q" \
for(int j = 1;j<= 6;j++) {/ a/ w4 e' z3 r- I6 [
cout<<vis[j]<<' ';
1 j& d" [3 n4 S/ l8 D }
" @* F2 q% B+ u/ [& O+ P Z cout<<endl;/ s! \1 f; e4 G. Y
}
+ P4 H% H c; G3 L! c. r cout<<endl<<endl;: m7 M, _0 u3 i4 p. t% j0 p' Z
}
6 J( x0 Z9 g! _% O
; V$ X/ N" ~: }" ^ \3 P. H9 u' M1 Bvoid dfs(int x,int y,int step) {# j2 g9 h/ \/ ^/ x
if(step> 6) {
7 E/ }: ^0 ~3 I& V& }( ]/ u return ;
0 c* a: `% i1 j: [ }/ {1 X# {# F1 `; k9 w* a
if(x == 1&&y == 1&&vis[1][1] == true) {$ a% o4 _" F! J+ `
ans++;( d; ?) o* L; c$ N: C- E
output();
}, _3 l9 J- A4 z return ;) U% z$ S4 n, Y0 A3 r) M
}
3 h R1 N. x0 y. u0 }' D for(int i = 0;i< 4;i++) {
: c: g3 H# U- s# h1 A* p; k7 t int tx = x+ne[0];% n& D) s+ t+ e
int ty = y+ne[1];
- b) r) m9 h- N$ r+ m8 D+ V. A9 U* y s8 j" `" @0 y$ |
if(x> 6||y> 6||x< 1||y< 1||vis[tx][ty]) continue;! U# H7 Y# j% Z* `8 C
vis[tx][ty] = true;
9 b& O' f. k6 d0 U" v dfs(tx,ty,step+1);0 Z" H7 e4 p+ ^& m! h5 S
vis[tx][ty] = false;0 \9 D- |( S+ s3 k( ?9 k
}
% W5 f6 a: K' C0 X return ;
( ]$ N x a% @}
% |8 Y4 _) E* }# l3 S0 z3 ]
. \4 x2 {/ }' ~int main() {
+ E. y7 F e: R0 ]+ g dfs(1,1,0);* T% z! v7 _) R, g! v; X5 ?5 v
cout<<ans<<endl;
, N# N$ R" M6 y$ _9 y- H' N3 ~6 \; C
return 0;0 P' J" Q# q9 C
}' |; P* V i7 X: {
--------------------- " D% a' e: r Z v9 }" e3 Q) x1 ^
作者:nka_kun
, D9 N1 x" j& E) s8 q来源:CSDN 2 a6 N3 a3 S) |( w% f) H
7 L' D7 l$ Q$ C, j3 s" j% s2 n* a4 K* _* r
|
zan
|