青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

a tutorial on computer science

  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  21 隨筆 :: 0 文章 :: 17 評論 :: 0 Trackbacks
    題目鏈接在這里http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1026
   題意很簡單:從起始點開始走,最多可以走K步,只能向左,向右,向前走,地圖上有一些豆豆,問你最多可以吃到多少豆豆。其實這個題可以這么看,每兩個豆豆之間的最短距離是固定的,我們的目的是吃豆豆,不是來玩的,所以就是一個最短哈密頓路徑問題,當(dāng)然題目有一些限制。上篇博客里寫的那個用一條鏈把N個點串起來,求最短長度問題和這個問題是類似的,但是那個題作者給出了一個DP解法,我表示很疑惑。如果看懂了作者的那個辦法,這個題就瞬秒了(哪位大神知道求指點)。上一篇在這里。http://m.shnenglu.com/a542343910/archive/2012/04/06/170309.html。
  好吧,既然不是大神,就自己寫個搜索吧。如果按照普通的那種搜索的辦法,每次左走一格,右走一格,前面走一格,超時超死你。額,這就要構(gòu)造出這個題的類似貪心的搜索了。上面我們已經(jīng)說過了,實際上我們是為了吃豆豆來的,每次從一個點,都要徑直走到另一個豆豆。這樣就很明了了:我們每次只要向左走,找個豆豆吃掉,向右走,找個豆豆吃掉,再向前走。就可以了。但是問題來了,會不會在當(dāng)前行沒吃豆豆,但是走了一些長度呢?我們分析下有沒有可能這做。假如我們向右走了K步,沒吃到豆豆,我們可以把這K步轉(zhuǎn)嫁到下一行,那樣這K步就有可能發(fā)揮作用吃到一個豆豆了,再來看最后一行,如果我們在最后一行走了無用的K步,也是毫無意義的。至此貪心的性質(zhì)證明出來了。搜索是個非常靈活的東西,也是可以有非常多拓展的東西。最重要的是,很有趣。
   在寫程序的時候,剛剛開始沒考慮清楚,只用了flag[]記錄當(dāng)前行剩下的豆豆,沒有記錄某個豆豆是否被吃掉(豆豆可能被重復(fù)吃掉),錯了一次。后面又粗心寫錯了一點,汗。。。
   好了,還有個更有趣的事情:這個題我開始是想用DP做的,并且寫出了個錯誤的DP程序。狀態(tài)如下:r[i][j][k],到達(dá)點i,j走了K步用的最小步長,可以證明,只要按照k遞增序枚舉就可以。咋一看5X9X100狀態(tài)很少,不錯。但是后來發(fā)現(xiàn),同一個狀態(tài)不是具有最優(yōu)子結(jié)構(gòu)的,因為可能吃了不同的豆豆到達(dá)了相同的狀態(tài)。So,錯了。能不能換一種方式DP呢?我想到了一個具有最優(yōu)子結(jié)構(gòu)的解法,r[i][j][k]表示吃掉了i行的所有豆豆,停留在i,j,走了K步最多吃的豆豆數(shù)目。額,這樣固然可以,但是。。。。題目說可以忽略一些豆豆。。。。哈哈,又胡思亂想了。好了,這幾天一直TILE,今天寫出了個比較滿意的,貼之。怨念下matlab。
#include <cstdio>
#include <cstring>

char data[10][10];
int N;
int flag[10];
int vis[10][10];
int ans,maxcount;


void dfs(int x,int y,int step,int count)
{
    if(step > N) 
      return;
    if(ans < count)
      ans = count;
     
    if(ans == maxcount)
      return;

    int i;
    if(flag[x] > 0)
    {
      i = y-1;
      while(i>=0 && data[x][i] != 'K' || vis[x][i]) 
        i--;
      if(i>=0 && (step + y-i)<= N) 
      {
        flag[x]--;
        vis[x][i] = 1;
        dfs(x,i,step+y-i,count+1); 
        vis[x][i] = 0;
        flag[x]++;
      }
      
      i =y+1;
      while(i<9 && data[x][i] != 'K' || vis[x][i])
        i++;
      if(i<9 && step+i-y <= N)
      {
        flag[x]--;
        vis[x][i] = 1;    
        dfs(x,i,step+i-y,count+1);
        vis[x][i] = 0;
        flag[x]++;
      }
    }

    if(x-1>=0)
    {
      if(data[x-1][y] == 'K')
      {
        flag[x-1]--;
        vis[x-1][y] = 1;
        dfs(x-1,y,step+1,count+1);
        vis[x-1][y] = 0;
        flag[x-1]++;
      }
     else
       dfs(x-1,y,step+1,count);
    }
}

int main()
{
  //freopen("in_1026.txt","r",stdin);
  
//freopen("out.txt","w",stdout);
  int testcount,sx,sy,i,j;
  scanf("%d",&testcount);
  while(testcount--)
  {
    memset(flag,0,sizeof(flag));
    memset(vis,0,sizeof(vis));
    scanf("%d",&N);  
    for(i=0;i<5;i++)
      scanf("%s",data[i]);    
    sx = sy = -1;
    for(i=0;i<5;i++)
    {
     for(j=0;j<9;j++)
     {
      if(data[i][j] == 'K')
        flag[i]++;
      if(data[i][j] == 'L')
      {
        sx = i;
        sy = j;
      }
     }
    }
    
    maxcount = 0;
    for(i=sx;i>=0;i--)
      maxcount += flag[i];
    
    ans = 0;
    dfs(sx,sy,0,0);
   printf("%d\n",ans);
  }
  return 0;
}
.
posted on 2012-04-07 16:46 bigrabbit 閱讀(1894) 評論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲午夜在线| 国产精品网站在线播放| 亚洲国产91色在线| 欧美性猛片xxxx免费看久爱| 一区二区三区不卡视频在线观看 | 欧美一区二区三区视频在线观看 | 久久综合亚洲社区| 亚洲精品一区二区三区婷婷月 | 91久久国产精品91久久性色| 欧美mv日韩mv国产网站app| 久久蜜桃av一区精品变态类天堂| 久久久青草婷婷精品综合日韩| 久久婷婷一区| 免费久久99精品国产自| 亚洲电影毛片| 99精品福利视频| 亚洲午夜久久久| 久久精彩免费视频| 欧美福利精品| 国产精品一区免费视频| 国产欧美一区二区视频| 黄色资源网久久资源365| 亚洲精品乱码久久久久久蜜桃麻豆| av不卡免费看| 欧美专区在线观看| 亚洲国产高清在线| 午夜激情久久久| 欧美成人一区二区| 国产模特精品视频久久久久| 亚洲国产精品福利| 亚洲伊人一本大道中文字幕| 久久久噜噜噜| 一区二区三区日韩欧美| 久久久久久91香蕉国产| 国产精品国产馆在线真实露脸| 精品成人a区在线观看| 亚洲一区综合| 91久久精品久久国产性色也91| 欧美一级二级三级蜜桃| 欧美国产视频一区二区| 国产亚洲精品久久飘花| 亚洲美女视频在线观看| 毛片一区二区| 欧美亚洲成人网| 猛男gaygay欧美视频| 久久久视频精品| 欧美午夜视频在线| 亚洲欧洲另类国产综合| 久久久噜噜噜久久| 亚洲在线一区二区三区| 欧美a级一区| 中文精品视频一区二区在线观看| 毛片精品免费在线观看| 韩国av一区二区三区| 先锋影音网一区二区| 亚洲伦理久久| 欧美精品在线观看91| 亚洲级视频在线观看免费1级| 久久精品在线视频| 亚洲在线免费观看| 国产精品久久久久久久9999| 一区二区日韩免费看| 亚洲人被黑人高潮完整版| 久久尤物视频| 在线看国产日韩| 久久久五月天| 久久久久88色偷偷免费| 韩国精品久久久999| 久久综合九色九九| 久久国产婷婷国产香蕉| 亚洲欧美综合国产精品一区| 国产精品一区久久久| 亚洲欧美国产一区二区三区| 亚洲一二区在线| 国产亚洲欧洲| 噜噜噜躁狠狠躁狠狠精品视频| 欧美一级片久久久久久久| 激情久久久久| 久久久久久97三级| 欧美激情精品久久久久久黑人| 久久精品国产免费看久久精品| 国产日韩欧美精品一区| 另类国产ts人妖高潮视频| 欧美成人高清视频| 亚洲一区二区三区乱码aⅴ| 亚洲一区二区精品在线| 国产视频一区在线观看一区免费| 久久久久久久综合狠狠综合| 久久精品一区二区三区不卡| 亚洲国产一区二区a毛片| 亚洲国产日韩一级| 欧美日韩国产首页在线观看| 中文一区二区| 久久av资源网站| 亚洲欧洲中文日韩久久av乱码| 99精品欧美一区二区三区综合在线| 国产精品久久亚洲7777| 免费不卡在线视频| 欧美午夜女人视频在线| 久久久久久夜| 欧美三区在线| 免费成人av| 国产精品一级在线| 亚洲国产日韩美| 午夜激情久久久| 老牛嫩草一区二区三区日本 | 亚洲最新视频在线| 欧美一级理论性理论a| 亚洲最新在线| 久久国产天堂福利天堂| 99成人在线| 久久精品一本| 午夜精品一区二区三区在线播放| 久久色中文字幕| 欧美一区二区三区成人| 欧美精品一区二区在线观看| 久久免费的精品国产v∧| 欧美大秀在线观看| 久久综合精品国产一区二区三区| 欧美视频一区在线观看| 欧美mv日韩mv国产网站| 国产性做久久久久久| 亚洲精品一区二区三区av| 在线播放中文一区| 亚洲欧美一区二区三区久久| 亚洲天堂黄色| 欧美理论大片| 亚洲第一级黄色片| 狠狠久久亚洲欧美专区| 午夜伦理片一区| 亚欧成人在线| 国产精品久久久久久久久免费樱桃| 久热精品视频在线免费观看| 欧美亚一区二区| 亚洲第一区在线观看| 国产一区二区精品| 欧美在线国产| 久久久人人人| 国产亚洲一二三区| 午夜视频精品| 久久人体大胆视频| 一区在线影院| 久久在线视频在线| 欧美激情第1页| 亚洲精品乱码久久久久久黑人| 久久久av水蜜桃| 免费日本视频一区| 亚洲高清在线观看一区| 裸体素人女欧美日韩| 蜜乳av另类精品一区二区| 精品99一区二区| 麻豆国产精品一区二区三区 | 久久精品网址| 国产在线视频欧美| 久久国产手机看片| 欧美xx69| 中文精品在线| 国产一区二区高清不卡| 久久午夜色播影院免费高清| 欧美大片免费久久精品三p| 亚洲三级影院| 国产精品乱码妇女bbbb| 亚洲一区免费观看| 久久在精品线影院精品国产| 国内欧美视频一区二区| 免费视频一区| 亚洲图中文字幕| 久久久噜噜噜久久| 亚洲欧洲另类国产综合| 玖玖国产精品视频| 在线免费不卡视频| 欧美国产高清| 一区二区三区导航| 久久香蕉国产线看观看av| 亚洲精品一区二区三区婷婷月| 欧美日韩一区不卡| 久久精品网址| 一区二区三区高清不卡| 久久另类ts人妖一区二区| 亚洲美女在线观看| 国产视频久久久久| 欧美激情视频在线免费观看 欧美视频免费一| 日韩手机在线导航| 麻豆精品91| 亚洲一区精品在线| 亚洲国产精品123| 国产精品美女www爽爽爽视频| 久久国产99| 一本色道久久综合亚洲精品小说 | 99在线精品视频在线观看| 国产精品日韩欧美一区| 免费在线日韩av| 午夜国产精品影院在线观看| 欧美高清在线视频观看不卡| 午夜一区二区三区在线观看| 亚洲精品乱码久久久久久蜜桃91| 国产日韩亚洲欧美| 国产精品久久久久久久久久尿 | 亚洲小说欧美另类婷婷| 欧美激情1区|