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

學習心得(code)

superlong@CoreCoder

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  74 Posts :: 0 Stories :: 5 Comments :: 0 Trackbacks

公告

文字可能放在http://blog.csdn.net/superlong100,此處存放代碼

常用鏈接

留言簿(4)

我參與的團隊

搜索

  •  

最新隨筆

最新評論

  • 1.?re: Poj 1279
  • 對于一個凹多邊形用叉積計算面積 后能根據結果的正負來判斷給的點集的時針方向?
  • --bsshanghai
  • 2.?re: Poj 3691
  • 你寫的這個get_fail() 好像并是真正的get_fail,也是說fail指向的串并不是當前結點的子串。為什么要這樣弄呢?
  • --acmer1183
  • 3.?re: HDU2295[未登錄]
  • 這個是IDA* 也就是迭代加深@ylfdrib
  • --superlong
  • 4.?re: HDU2295
  • 評論內容較長,點擊標題查看
  • --ylfdrib
  • 5.?re: HOJ 11482
  • 呵呵..把代碼發在這里很不錯..以后我也試試...百度的編輯器太爛了....
  • --csuft1

閱讀排行榜

評論排行榜

#include <stdio.h>
#include 
<memory.h>

int  n, m, l, test;
int  mv[4][2= {{0-1}, {-10}, {01}, {10}, };//left up right down
int  pow[9= {01416642561024409616384};//for 4's pow

bool tu[21][21];
int  mym[21][21][65535];
int  f[21][21];

struct nod
{
    
int x, y, s, cost, step;
};

bool operator <(nod a, nod b)
{
    
return a.x < b.x || a.x == b.x && a.y < b.y ||
        a.x 
== b.x && a.y == b.y && a.s < b.s;
}

int si, sJ;
nod ini;

int cha(int x, int y)
{
    
if(x < 0return 1;
    
if(x > 0return 3;
    
if(y < 0return 0;
    
if(y > 0return 2;
}

void read()
{
    
int i, x, y, tx, ty;
    scanf(
"%d %d"&si, &sJ);
    x 
= si; y = sJ;
    
int ch = 0;
    
for(i = 0; i < l - 1; i ++)
    {
        scanf(
"%d %d"&tx, &ty);
        ch 
= ch * 4 + cha(tx - x, ty - y);
        x 
= tx; 
        y 
= ty;
    }
    ini.s 
= ch;
    ini.x 
= si; ini.y = sJ;
    
int stone;
    memset(tu, 
0sizeof(tu));
    scanf(
"%d"&stone);
    
for(i = 0; i < stone; i ++)
    {
        scanf(
"%d %d"&x, &y);
        tu[x][y] 
= 1;
    }
}

int open, close, first;
nod q[
1000001];

bool ok(nod t, int index)
{
    
short dx = t.x + mv[index][0], dy = t.y + mv[index][1];
    
short x, y;;
    x 
= t.x;
    y 
= t.y;
    
for(int i = 0; i < l - 1; i ++)
    {
        x 
= x + mv[ t.s / pow[l - 1 - i] ][0];
        y 
= y + mv[ t.s / pow[l - 1 - i] ][1];
        
if(x == dx && y == dy) return false;
        t.s 
= t.s % pow[l - 1 - i];
    }
    
return true;
}

void change(int &ch, int i)
{
    ch 
= ch >> 2;
    ch 
+= ((i + 2% 4* pow[l - 1];
}

bool check(nod t)
{
    
short xx = t.x, yy = t.y;
    
if(xx < 1 || xx > n || yy < 1 || yy > m) return false;
    
if(tu[xx][yy]) return false;
    
return true;
}

void heap(nod tp)
{
    nod tmp;
    tmp 
= q[++open] = tp;
    
int i = open, J = i / 2;
    
while( i > first)
    {
        
if( tmp.cost < q[J].cost && J > first)
        {
            q[i] 
= q[J];
            i 
= J;
            J 
= i / 2;
        }
        
else 
            
break;
    }
    q[i] 
= tmp;
}

bool expend(nod temp)
{
    nod t;
    
for(int i = 0; i < 4; i ++)
    
if(ok(temp, i))
    {
        t 
= temp;
        t.x 
+= mv[i][0];
        t.y 
+= mv[i][1];
        t.step 
++;
        
if(t.x == 1 && t.y == 1return true;
        change(t.s, i); 
        
if(check(t) && mym[t.x][t.y][t.s] != test)
        {
            mym[t.x][t.y][t.s] 
= test;
            t.cost 
= f[t.x][t.y] + t.step;
            heap(t);
        }
    }
    
return false;
}

int bfs()
{
    nod temp;
    close 
= -1;    open = 0;
    q[
0= ini;
    q[
0].cost = f[ini.x][ini.y];
    q[
0].step = 0;
    
if(ini.x == 1 && ini.y == 1return 0;
    mym[ini.x][ini.y][ini.s] 
= test;
    
int size;
    
while(close < open)
    {
        temp 
= q[++ close];
        first 
= close + 1;
        
if(expend(temp)) return temp.step + 1;
    }
    
return -1;
}

struct td{int x, y;}que[1001];
bool ha[21][21];
void pre()
{
    close 
= -1, open = 0;
    memset(ha,
0,sizeof(ha));
    td t;
    que[
0].x = 1;
    que[
0].y = 1;
    ha[
1][1= 1;
    f[
1][1= 0;
    
while(close < open)
    {
        t 
= que[++close];
        
for(int i = 0; i < 4; i ++)
        {
            
int x = t.x + mv[i][0], y = t.y + mv[i][1];
            
if(x < 1 || x > n || y < 1 || y > m) continue;
            
if(ha[x][y] || tu[x][y]) continue;
            ha[x][y] 
= 1;
            f[x][y] 
= f[t.x][t.y] + 1;
            que[
++open].x = x;
            que[open].y 
= y;
        }
    }
}

int main()
{
    freopen(
"in.txt","r",stdin);
    test 
= 0;
    
while(scanf("%d %d %d"&n, &m, &l), n||m||l)
    {
        read();
        pre();
        
++test;
        printf(
"Case %d: %d\n",test,bfs());
    }
    
while(1);
}

posted on 2009-09-01 19:18 superlong 閱讀(177) 評論(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>
            亚洲精品乱码久久久久| 久久嫩草精品久久久精品一| 在线成人免费观看| 国产日韩一区欧美| 国产精品推荐精品| 99riav国产精品| 欧美成人69| 亚洲一级影院| 亚欧成人在线| 免费精品99久久国产综合精品| 亚洲精品国产精品国自产在线 | 欧美成年人视频网站| 久久九九免费视频| 女仆av观看一区| 亚洲国产欧洲综合997久久| 欧美成人在线影院| 亚洲三级视频在线观看| 这里是久久伊人| 欧美专区在线观看一区| 久久漫画官网| 欧美精品一级| 国产日韩欧美黄色| 亚洲激情成人| 欧美一级专区| 欧美国产日本| 亚洲欧美国产高清| 六月婷婷一区| 亚洲免费人成在线视频观看| 一区二区日韩伦理片| 性伦欧美刺激片在线观看| 欧美大片第1页| 国产欧美日韩| 一区二区三区视频在线播放| 性欧美激情精品| 欧美jizz19性欧美| 亚洲视频图片小说| 欧美91视频| 国产日韩精品一区二区三区| 在线观看日韩av电影| 亚洲欧美日韩另类精品一区二区三区| 蜜桃av一区二区三区| 亚洲一区久久| 欧美日韩亚洲一区三区 | 亚洲午夜激情免费视频| 玖玖玖国产精品| 国产美女诱惑一区二区| 亚洲精品少妇30p| 久久久久久久一区| 一区二区高清视频在线观看| 久久综合九色九九| 国产亚洲精品高潮| 亚洲欧美日韩综合| 欧美日韩一区二区免费在线观看| 久久久999| 国产欧美精品国产国产专区| 亚洲国产成人在线| 欧美成人日本| 亚洲午夜免费视频| 国产一区视频观看| 欧美日韩在线视频一区二区| 亚洲精品免费在线观看| 久久精品国产免费观看| 中日韩高清电影网| 欧美视频一区| 久久久久国产精品一区二区| 欧美伊人精品成人久久综合97| 国产欧美一区二区精品仙草咪 | 亚洲综合色噜噜狠狠| 国产精品国产三级国产普通话三级| 亚洲午夜精品久久| 免费在线成人| 亚洲综合三区| 亚洲综合色婷婷| 欧美激情aaaa| 国产精品久久国产三级国电话系列 | 亚洲成色精品| 亚洲精品日产精品乱码不卡| 欧美午夜视频| 欧美成人69av| 欧美高清一区| 国产精品美女一区二区| 欧美不卡高清| 国产欧美日韩视频一区二区三区 | 久久精品一区二区国产| 亚洲在线视频免费观看| 影音先锋一区| 亚洲欧美日韩国产中文| 亚洲视频国产视频| 欧美激情中文不卡| 亚洲欧洲日本国产| 亚洲免费高清| 欧美日韩第一区日日骚| 欧美成人一区二区三区| 国产一区二区0| 一区二区三区 在线观看视频| 一本大道av伊人久久综合| 久久午夜电影网| 亚洲国产成人高清精品| 亚洲啪啪91| 国产精品极品美女粉嫩高清在线 | 91久久久久久久久久久久久| 国产亚洲精品aa| 欧美在线视频日韩| 欧美激情第3页| 亚洲视频在线观看| 国产精品人人爽人人做我的可爱| 亚洲永久精品国产| 久久综合狠狠综合久久综合88| 亚洲福利视频免费观看| 欧美区在线播放| 欧美激情1区2区| 一区二区三区四区五区在线| 午夜一区二区三区在线观看| 国产在线成人| 国产精品国产三级国产专播品爱网 | 欧美日韩天天操| 一区二区毛片| 欧美成人第一页| 欧美一区精品| 亚洲尤物在线| 精品91免费| 国内成+人亚洲+欧美+综合在线| 欧美在线啊v| 日韩午夜激情| 久久综合99re88久久爱| 亚洲欧美国产日韩中文字幕| 在线观看91久久久久久| 国产精自产拍久久久久久蜜| 欧美国产高潮xxxx1819| 欧美国产第一页| 久久久久9999亚洲精品| 亚洲一区二区视频在线| 一区二区三区四区国产| 91久久精品日日躁夜夜躁欧美 | 欧美与欧洲交xxxx免费观看 | 一区二区国产在线观看| 欧美大片免费观看| 欧美国产日韩精品免费观看| 狂野欧美激情性xxxx欧美| 蜜桃久久精品一区二区| 国产精品vvv| 欧美激情第五页| 国产精品啊v在线| 国产精品亚洲网站| 亚洲品质自拍| 99re热这里只有精品视频| 一本色道久久综合| 性欧美1819性猛交| 欧美大片在线看免费观看| 亚洲激情在线观看视频免费| 蜜臀久久久99精品久久久久久| 日韩一本二本av| 久久国产精品久久w女人spa| 欧美~级网站不卡| 亚洲网友自拍| 国产精品视频一二| 玖玖精品视频| 欧美日韩精品免费观看| 欧美一区二区三区在线观看| 中文在线一区| 亚洲第一福利社区| 在线中文字幕一区| 亚洲国产一区二区三区青草影视 | 欧美电影免费| 一区二区不卡在线视频 午夜欧美不卡在 | 一区视频在线播放| 一区二区三区四区五区精品视频 | 一本一道久久综合狠狠老精东影业 | 欧美日韩国产精品一卡| 亚洲电影免费观看高清完整版在线 | 亚洲欧美三级伦理| 国产精品xxxav免费视频| 日韩一级二级三级| 亚洲美女免费精品视频在线观看| 免费观看欧美在线视频的网站| 国内精品一区二区三区| 久久精品国产欧美亚洲人人爽| 亚洲欧美国产日韩中文字幕| 国产麻豆日韩欧美久久| 美女视频黄 久久| 蜜臀久久99精品久久久久久9| 99亚洲视频| 久久超碰97人人做人人爱| 国产一区清纯| 亚洲国产欧美精品| 欧美午夜精品理论片a级按摩| 日韩视频在线播放| 亚洲在线一区二区三区| 亚洲一区一卡| 亚洲高清自拍| 亚洲午夜免费视频| 在线日韩成人| 午夜在线观看免费一区| 亚洲日本激情| 午夜视频久久久久久| 亚洲国产精品久久久久久女王| 一区二区久久久久| 亚洲私人影院在线观看| 亚洲欧美国产毛片在线| 欧美在线视频导航|