貪食蛇(未完待續)

2022-05-31 06:54:08 字數 2106 閱讀 9565

題解:

練**功底的題目

首先思路嘛很顯然 spfa+狀壓dp(你要說爆搜也可以)

令f[i][j][s][k]表示當前在i,j,蛇的形狀為s,然後吃到的狀態是k

然後呢細節一大堆

首先空間就是個問題

12*12*2^12*2^4

(為什麼是2^14次方呢 因為可以記錄相鄰之間的關係有4種,然後最多要記錄6個,我**裡寫的是7個。。最後一次的那個是不用記得)

然後還要輸出方案 如果是記6個的話應該可以隨便開

如果記7個的話 那就搞乙個int記錄前面蛇的狀態,兩個bool記錄蛇的位置(因為只有1-4)

然後顏色是要當時算的

這樣勉強512mb卡過去。。

時間上嘛理論是(x=12*12*2^12*2^4) xlogx的

但因為挺多狀態是冗餘的 應該是夠得。。

然後我覺得洛谷上的評測可能是單一答案麼。。。 所以只拿了no solution的分

以後再看看。。

**:

#include using

namespace

std;

#define maxn1 16390

#define maxn2 15

int dp[13][13][maxn1][maxn2],w[16][16],ft[16][16

];int pre[13][13

][maxn1][maxn2];

bool pre2[3][13][13

][maxn1][maxn2];

bool ff[16][16

][maxn1][maxn2];

int dx[5]=;

int dy[5]=;

intn,m,k;

int jl[1000000

];struct

re;queue

q;int js(int x,int y,int x1,int

y1)int query(int

x)bool pd(re tmp,int

i)

return(true);}

re js2(re tmp,

inti)

;

return

(x3);

}int now=tmp.c,cnt=0,len=query(tmp.d);

for (int j=1;j)

re x3=;

return

(x3);

}char c[100

];#define inf 1e9

intmain()

intx,y,x2,y2;

cin>>x>>y; x2=x; y2=y; int tmp=0

;

for (int i=1;i<=3;i++)

memset(dp,-1,sizeof

(dp));

dp[x2][y2][tmp][

0]=0

; pre[x2][y2][tmp][

0]=-1

; re x4=; q.push(x4);

cin>>k;

for (int i=1;i<=k;i++)

int goal=(1

<1

; memset(ff,

1,sizeof

(ff));

int ans=inf,xans,yans,zans,eans=goal;

while (!q.empty())

;if (r.b!=goal&&ff[x.a+dx[i]][x.b+dy[i]][r.a][r.b])

if (r.b==goal&&dp[x.a+dx[i]][x.b+dy[i]][r.a][r.b]}

}ff[x.a][x.b][x.c][x.d]=1

; }

int cnt=0

;

if (ans==inf) cout<<"

no solution.";

else

for (int i=cnt;i;i--)

}return0;

}

貪食蛇程式

define n 200 include include include define left 0x4b00 define right 0x4d00 define down 0x5000 define up 0x4800 define esc 0x011b int i,key int score ...

貪食蛇設計

為什麼叫能走蛇 當我剛知道自己要寫一條這樣的蛇時,我的心情是十分複雜的,之所以叫這個名字,是因為這條蛇只有乙個功能,即聽從玩家的命令,在迷宮內四處走動。怎麼寫出能走蛇 那這條靈活 其實很笨拙 的蛇是如何誕生出世的呢?先寫乙個總控偽 出來,採用自頂向下的思想,一步一步解決具體檔案。頭部如下 一點小總結...

貪食蛇的程式

無聊,分析了乙個用c語言寫的貪食蛇的程式。寫的非常簡練,就是函式的名字起得不是很好。include include define kuan 20 地圖的大小 int iz kuan kuan 地圖 struct jiedian 蛇的結點位置,使用鍊錶結構來儲存蛇身上各結點的位置 point ptsh...