• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            yoyouhappy的秘密花園
            歡迎來到我的秘密花園^^
            posts - 16,comments - 33,trackbacks - 0

            WA了一次,最后發(fā)現(xiàn)竟然是多次計(jì)算時(shí)沒給result賦初值,改了以后就AC了~

            題目是寫一個(gè)超簡(jiǎn)化版的貪吃蛇,在50*50的矩陣中,起始位置是蛇頭位于的(25,30),蛇尾在(25,11),蛇占20個(gè)格。蛇可以向E W N S四個(gè)方向移動(dòng),當(dāng)然不能反向移動(dòng),也不能撞倒自己或者撞倒墻.

            輸入多組case,每組是一串字符,表示每次的移動(dòng)方向.
            輸出是否能完成這些移動(dòng),如果不能,就判斷是在第幾次移動(dòng)時(shí)撞倒自己還是墻.

            我的思路是  在矩陣中,將蛇占據(jù)的位置用1標(biāo)記,將蛇頭到蛇尾的20個(gè)坐標(biāo)存入一個(gè)vector,然后每次移動(dòng),先判斷是否撞倒墻,如果沒撞倒墻,就先將蛇尾刪除,將舊蛇頭的位置置0(新蛇頭可以是舊蛇尾 ),再將新的蛇頭存入vector,判斷新的蛇頭所在的位置是否為0,若為被占據(jù),則置1,繼續(xù)移動(dòng).


            覺得自己寫得很冗余,開始時(shí)只記錄了蛇頭和蛇尾的坐標(biāo),以為根據(jù)蛇頭移動(dòng)就可以判斷蛇尾的移動(dòng),寫著寫著就發(fā)現(xiàn)問題了,臨時(shí)加了個(gè)vector來存蛇的坐標(biāo),所以程序有點(diǎn)亂,也只有這樣了,以后再改改吧~


            我的AC代碼:

             1#include<iostream>
             2#include<vector>
             3#include<string>
             4using namespace std;
             5struct point
             6{
             7 int row;
             8 int col;
             9};
            10int main()
            11{
            12    int i,j,n,index,result=1;
            13 string moves;
            14 char move;
            15 point p;
            16 vector<point>v;
            17 while(1)
            18 {
            19  result=1;
            20  cin>>n;
            21  if(n==0)break;
            22
            23  int s[50][50]={0};
            24        int fristr=24,fristc=29,lastr=24,lastc=10;
            25  cin>>moves;
            26  for(j=10;j<30;j++)
            27  {
            28   s[24][j]=1;
            29   p.row=24;
            30   p.col=j;
            31   v.push_back(p);
            32  }
            33  for(index=0;index<n;index++)
            34  {
            35   move=moves[index];
            36   if(move=='E')++fristc;
            37   if(move=='W')--fristc;
            38   if(move=='N')--fristr;
            39   if(move=='S')++fristr;
            40   if(fristr*(fristr-49)>0||fristc*(fristc-49)>0)
            41   {
            42    cout<<"The worm ran off the board on move "<<index+1<<"."<<endl;
            43    result=0;
            44    break;
            45   }
            46   v.erase(v.begin());
            47   p.row=fristr;
            48   p.col=fristc;
            49   v.push_back(p);
            50   s[lastr][lastc]=0;
            51   lastr=v[0].row;
            52   lastc=v[0].col;
            53   if(s[fristr][fristc])
            54   {
            55    cout<<"The worm ran into itself on move "<<index+1<<"."<<endl;
            56    result=0;
            57    break;
            58   }
            59   s[fristr][fristc]=1;
            60  }
            61  if(result)printf("The worm successfully made all %d moves.\n", n);
            62  v.clear();
            63  getchar()
            64 }
            65}
            66
            posted on 2007-08-17 08:48 yoyouhappy 閱讀(946) 評(píng)論(4)  編輯 收藏 引用 所屬分類: yoyo的解題報(bào)告 、acm/icpc

            FeedBack:
            # re: JOJ 1034 Worm Turns
            2007-08-17 14:01 | tb
            蛇頭如果與身體相撞 必然會(huì)形成一個(gè)矩形??梢愿鶕?jù)輸入的字符串判斷出來。
            但是在開始的時(shí)候(前20步)是個(gè)需要特別處理的情況  回復(fù)  更多評(píng)論
              
            # re: JOJ 1034 Worm Turns
            2007-08-17 14:06 | tb
            再想了一下 不一定是矩形 但是在 東西 和 南北 方向上的位 肯定是0   回復(fù)  更多評(píng)論
              
            # re: JOJ 1034 Worm Turns
            2007-08-17 14:09 | tb
            可以把輸入分為兩部分 一個(gè)只有南北 一個(gè)只有東西 (保持順序)然后看位移是不是0
              回復(fù)  更多評(píng)論
              
            # re: JOJ 1034 Worm Turns
            2007-08-18 10:36 | yoyouhappy
            @tb
            不太明白你的意思。。。。
            位移為什么會(huì)是0呢,誰的位移為0?我有點(diǎn)糊涂了  回復(fù)  更多評(píng)論
              
            Priceline Travel
            Priceline Travel
            一本色道久久综合狠狠躁篇 | 国产成人久久精品区一区二区| 精品人妻伦九区久久AAA片69| 亚洲国产成人久久综合一区77| 免费无码国产欧美久久18| 无码国内精品久久人妻| 99久久成人18免费网站| 亚洲国产精品一区二区久久hs| 香蕉久久夜色精品国产小说| yy6080久久| 久久久久久亚洲精品无码| MM131亚洲国产美女久久| 一本久久综合亚洲鲁鲁五月天| 久久香蕉国产线看观看乱码| 亚洲中文字幕无码久久2020| 99国产精品久久久久久久成人热| 一本大道久久东京热无码AV| 2021国产成人精品久久| 色婷婷综合久久久中文字幕| 色天使久久综合网天天| 久久青青草原亚洲av无码| 青青草国产精品久久| 国内精品久久人妻互换| 亚洲人成网亚洲欧洲无码久久| 久久综合一区二区无码| 九九久久精品无码专区| 久久se精品一区精品二区| 无码人妻精品一区二区三区久久| 中文字幕无码久久精品青草| 久久久久久无码国产精品中文字幕 | 成人免费网站久久久| 日本强好片久久久久久AAA | 久久国产影院| 2020最新久久久视精品爱| 国产精品永久久久久久久久久| 69国产成人综合久久精品| 久久亚洲美女精品国产精品| 久久精品亚洲精品国产色婷| 99麻豆久久久国产精品免费| 国产精品久久久久影院嫩草| 久久精品国产91久久综合麻豆自制|