<center id="qkqgy"><optgroup id="qkqgy"></optgroup></center>
  • <menu id="qkqgy"></menu>
    <nav id="qkqgy"></nav>
    <xmp id="qkqgy"><nav id="qkqgy"></nav>
  • <xmp id="qkqgy"><menu id="qkqgy"></menu>
    <menu id="qkqgy"><menu id="qkqgy"></menu></menu>
    <tt id="qkqgy"><tt id="qkqgy"></tt></tt>

  • 藍橋杯報名已經開始,你做好準備了嗎?

    在參賽報名前,一定要做好充足的準備,除了學習算法等基礎知識外,還要學會實戰。

    今天,我帶來2017年藍橋杯省賽真題,歡迎大家一起來做刷題哦~單獨戳我或移步工粽號:藍橋云課,即可免費得藍橋杯真題庫!(PS:千萬別只看不思考不敲代碼!)

    <>01 藍橋杯省賽真題

    本題為填空題,只需要算出結果后,在代碼中使用輸出語句將所填結果輸出即可。

    X 星球的一處迷宮游樂場建在某個小山坡上。它是由 10x10 相互連通的小房間組成的。 房間的地板上寫著一個很大的字母。我們假設玩家是面朝上坡的方向站立,則:

    L 表示走到左邊的房間;
    R 表示走到右邊的房間;
    U 表示走到上坡方向的房間;
    D 表示走到下坡方向的房間。
    X星球的居民有點懶,不愿意費力思考。他們更喜歡玩運氣類的游戲。這個游戲也是如此!
    開始的時候,直升機把 100 名玩家放入一個個小房間內。玩家一定要按照地上的字母移動。

    迷宮地圖如下:
    UDDLUULRUL
    UURLLLRRRU
    RRUURLDLRD
    RUDDDDUUUU
    URUDLLRRUU
    DURLRLDLRL
    ULLURLLRDU
    RDLULLRDDD
    UUDDUDUDLL
    ULRDLUURRR

    請你計算一下,最后,有多少玩家會走出迷宮? 而不是在里邊兜圈子。

    如果你還沒明白游戲規則,可以參看下面一個簡化的 4x4 迷宮的解說圖:

    <>02 解題思路

    (1)投機取巧式

    根據“考生須知”,這題是填空題,只交答案就行了。如果不想編碼,直接用手一個個去數那 100 個點,幾分鐘就數完了,答案是 31,比編碼還要快。

    (2) DFS 編碼

    一道搜索題,可以選擇 dfs,代碼簡短。
    #include <iostream> using namespace std; #include<vector> #include<string>
    using namespace std; int ans; vector<vector<char>>s={
    {'U','D','D','L','U','U','L','R','U','L'},
    {'U','U','R','L','L','L','R','R','R','U'},
    {'R','R','U','U','R','L','D','L','R','D'},
    {'R','U','D','D','D','D','U','U','U','U'},
    {'U','R','U','D','L','L','R','R','U','U'},
    {'D','U','R','L','R','L','D','L','R','L'},
    {'U','L','L','U','R','L','L','R','D','U'},
    {'R','D','L','U','L','L','R','D','D','D'},
    {'U','U','D','D','U','D','U','D','L','L'},
    {'U','L','R','D','L','U','U','R','R','R'}}; bool vis[100][100]; void dfs(int
    x,int y) { if(vis[x][y] == true) return; if(x<0||y<0||x>=s.size() ||
    y>=s[x].size()) { ans++; return; } switch (s[x][y]) { case 'U': vis[x][y]=
    true;dfs(x-1,y);vis[x][y]= false;break; case 'L': vis[x][y]=
    true;dfs(x,y-1);vis[x][y]= false;break; case 'R': vis[x][y]=
    true;dfs(x,y+1);vis[x][y]= false;break; case 'D': vis[x][y]=
    true;dfs(x+1,y);vis[x][y]= false;break; default:return; } } void has_Path() {
    for(int i=0;i<s.size();++i) for(int j=0;j<s[i].size();++j) dfs(i,j); } int
    main() { has_Path(); cout<<ans; }
    今天的藍橋杯真題刷題就到這里了,后續我也會不定期更新藍橋杯真題講解。

    如果有任何藍橋杯、代碼問題,也可以單獨私戳我,或者移步工粽號:藍橋云課

    技術
    下載桌面版
    GitHub
    百度網盤(提取碼:draw)
    Gitee
    云服務器優惠
    阿里云優惠券
    騰訊云優惠券
    華為云優惠券
    站點信息
    問題反饋
    郵箱:ixiaoyang8@qq.com
    QQ群:766591547
    關注微信
    巨胸美乳无码人妻视频