機械人遊戲

2021-07-30 03:29:50 字數 2120 閱讀 5366

小a和小b在乙個r行s列的棋盤上玩遊戲,棋盤上的每乙個棋格都有乙個方向標記(上、下、左或右)。遊戲按如下方式進行:

小a先將k個棋格塗上黑色(初始為白色),並且他不能塗黑最後一列的棋格;隨後,小b在第一列的任意乙個棋格上放乙個小機械人;此時,小機械人將會不停地沿著他所在的棋格所指示的方向走到乙個相鄰的棋格,直到他到達最後一列的棋格,遊戲結束。

遊戲勝負規則如下:

●如果小機械人最終到達最後一列,且在遊戲過程中經過了恰好乙個黑色棋格(包括小機械人開始的棋格),那麼小a獲得勝利;如果小機械人經過了零個或大於乙個黑色格仔,那麼小b獲得勝利。

●如果機械人永遠無法停下來,那麼小a勝利。

題目保證每個棋格上的方向標記不會讓小機械人走到棋盤外。

現在小a想知道,他是否能找到一種塗黑格仔的方案,使得不論小b如何放置遊戲開始時的小機械人,他都能取得遊戲的勝利。

形成環的和無用點都隨便選。

剩餘形成樹,類似樹形依賴dp即可。

#include

#include

#define fo(i,a,b) for(i=a;i<=b;i++)

#define fd(i,a,b) for(i=a;i>=b;i--)

#define id(i,j) ((i-1)*m+j)

using

namespace

std;

const

int maxn=1000000+10;

bool f[maxn][55];

int g[maxn][55];

bool gg[maxn][55];

int h[maxn],go[maxn],next[maxn],fa[maxn],rec[maxn][2],ans[55][2];

int dfn[maxn],nfd[maxn],l[maxn],size[maxn],sta[80],c[maxn];

bool bz[maxn],pd[maxn];

int i,j,k,l,r,t,n,m,wdc,tot,top,euler,cnt,num,sum;

bool czy;

char ch;

int read()

while (ch>='0'&&ch<='9')

return x*f;

}char get()

void add(int x,int y)

int getfa(int x)

void link(int x,int y)

pd[b]|=pd[a];

fa[a]=b;

}void dfs(int x)

}void dg(int x)

l[x]=10000000;

int t=h[x];

while (t)

t=next[t];

}}void write(int x)

top=0;

while (x)

while (top) putchar('0'+sta[top--]);

}int main()

fo(i,1,n)

fo(j,1,m)

wdc=n*m+1;

fo(i,1,n*m)

if (!fa[i]&&!pd[i]) link(i,wdc);

dfs(wdc);

dg(wdc);

fo(i,1,n*m)

if (rec[i][1]!=m&&(pd[getfa(i)]||!bz[i])) c[++sum]=i;

f[1][0]=1;

fo(i,1,cnt)

fo(j,0,k)

if (f[i][j])

if (!f[i+size[t]][j+1]&&rec[t][1]1]>0&&j1]=1;

g[i+size[t]][j+1]=i;

gg[i+size[t]][j+1]=1;}}

fd(j,k,-1)

if (j<0||f[cnt+1][j]) break;

if (j<0||k-j>sum)

l=j;

i=cnt+1;

while (j)

i=r;

}fo(i,l+1,k)

fo(i,1,k)

}

遊戲機械人

題目描述 讓我們來玩乙個機械人遊戲,遊戲在乙個長方形網格上進行,機械人最初被安放在長方形網格的左上角且面朝東,而遊戲的目標就是使到達右下網格。機械人可以執行以下5種操作 straight 保持機械人當前的方向,並前進一格。right 右轉90度,並前進一格 back 轉180度,並前進一格 left...

遊戲機械人

現在主要講講建邊的問題,許多圖難就難在建邊上,建完邊後就是簡單的裸題什麼之類的,遊戲機械人就是這樣一道題。時間限制 1 sec 記憶體限制 128 mb 提交 77 解決 43 提交 狀態 討論版 讓我們來玩乙個機械人遊戲,遊戲在乙個長方形網格上進行,機械人最初被安放在長方形網格的左上角且面朝東,而...

遊戲機械人(1)

最早聽說網路機械人的存在,是在2002年底,那時第一次聽說google為了統計和查詢網路資源,專門研製了一種網路機械人,在世界各地為google不辭勞苦地忙碌著,然而,關於網路機械人更詳細的資訊卻一直不得而知。直至2003年10月,才第一次在網路遊戲中聽說了有一種程式叫 機械人程式 以下簡稱遊戲機械...