hdu4740 杭州網賽 模擬 有點搜尋?

2021-09-08 16:56:12 字數 1818 閱讀 1365

當時看了這題就感覺so easy。。。  本來不想寫的,後來感覺是不是可以練一下搜尋水平。。

比賽時有人過了就沒寫。       比賽完了寫一下。

實現還不是那麼順利,  囧

本來自己以為這題能練下搜尋,其實dfs、bfs都沒用到,也許模擬中有點搜尋吧。   

還是類似方格的東西把外圍也設定成未標記要好的多,做題多了也許就有這種感覺了吧。

還有自己忽略了驢 老虎前面是已經走過的路也可以轉彎。   bs!!

#include #include #include #include #include #define clr(x) memset(x, 0, sizeof(x))

using namespace std;

const int maxn = 1200;

int dv[maxn][maxn], tv[maxn][maxn];

int n, temp;

//碰到已經走過的點也會轉向 不僅是撞牆時。

int main()

dv[a1][b1] = 1; tv[a2][b2] = 1;

while(true)

else if(!dv[a1+1][b1])

}else if(c1 == 1) //south

else if(!dv[a1][b1-1])

}else if(c1 == 2) //west

else if(!dv[a1-1][b1])

}else if(c1 == 3) //north

else if(!dv[a1][b1+1])

}if(c2 == 0) // east

else if(!tv[a2-1][b2])

}else if(c2 == 1) //south

else if(!tv[a2][b2+1])

}else if(c2 == 2) //west

else if(!tv[a2+1][b2])

}else if(c2 == 3) //north

else if(!tv[a2][b2-1])

}if(ok1 == 0 && ok2 == 0)

}if(ans == -1) printf("-1\n");

else printf("%d %d\n", a1-1, b1-1);

}return 0;

}

自己要是想縮短**長度其實可以設個函式。

再看看thu的**。。    有 1 -1 0 0 這種東西。。

#include#include#include#include#includeusing namespace std;

const int max_n = 1000 + 10;

int n;

//e,s,w,n

int dx[4] = , dy[4] = ;

struct walker

bool check(int r, int c)

void walk()

d = (d + turn) % 4;

if (check(x + dx[d], y + dy[d]))

active = false; //dead >_<

return;

end:

vis[x][y] = true;

}};walker a, b;

int main()

if (a.active)

if (b.active)

}cout << -1 << endl;

end: }}

hdu 杭電2074 疊筐

problem description 需要的時候,就把乙個個大小差一圈的筐疊上去,使得從上往下看時,邊筐花色交錯。這個工作現在要讓計算機來完成,得看你的了。input 輸入是乙個個的三元組,分別是,外筐尺寸n n為滿足0 output 輸出疊在一起的筐圖案,中心花色與外筐花色字元從內層起交錯相疊,...

hdu 杭電 1728 逃離迷宮

題意 m n m行,n列 的迷宮,給你兩個座標a x1,y1 b x2,y2 從a b轉過的最少彎數是否滿足條件 滿足輸出 yes 否輸出 no 解法 廣搜,特別注意 走過的點絕不可以標記,原因 很多人說用優先佇列,但這題只要你標記了即使用優先佇列還是不行,原因 假設1轉彎數為5方向向右,2的轉彎數...

HDU 杭電 2059 龜兔賽跑

龜兔賽跑 problem description 據說在很久很久以前,可憐的兔子經歷了人生中最大的打擊 賽跑輸給烏龜後,心中鬱悶,發誓要報仇雪恨,於是躲進了杭州下沙某農業園臥薪嘗膽潛心修煉,終於練成了絕技,能夠毫不休息得以恆定的速度 vr m s 一直跑。兔子一直想找機會好好得教訓一下烏龜,以雪前恥...