2014 西安邀請賽狀壓DP

2021-06-22 16:43:09 字數 801 閱讀 2135

題意很簡單,求出出口到其他入口之間的最短路徑,再求走完所有管道的距離的最小值。

按自己的思路就是tle……

看了題解後學習了狀態壓縮動態規劃,再加寬搜求最短距離就ok了。

這裡的dp【i】【j】表示以i為起點,在狀態j下的最優值。(其中j是用十進位制表示的二進位制,例如:dp表示以2為起點,走了管道0和2的最優值。)

動態轉移方程:dp【i】【j|(1<    其中i的範圍(0-m-1),j的範圍(0-1<#include#include#includeusing namespace std;

const int inf=1<<29;

const int maxn=40;

const int maxm=(1<<15)+1000;

struct tunnel

t[maxn];

struct node

;int n,m,des,vis[maxn][maxn],dis[maxn][maxn];

int movex[4]=,movey[4]=;

int e,st,dp[maxn][maxm];

char map[maxn][maxn];

queueq;

bool isborder(int x,int y)

void bfs()

//狀態dp

int main()

{ while(scanf("%d%d",&n,&m)!=eof)

{for(int i=1; i<=n; i++)

scanf("%s",map[i]+1);

for(int i=0; i

2017西安邀請賽總結

我記得前幾天就傳上來了的呀。邀請賽總結 前幾天玩的太浪了,還包了一次宿。休息就跟不上了,正式賽時候腦子一直濛濛的。而且之前想前一天去安排下戰術,然而熱身發揮的比較穩,再加上酒店問題比較大,換房間什麼的浪費很長時間就沒有去安排戰術,正式賽只做的4題,銅牌第6.發揮的很差,全場題總是不出。其實a題正解我...

2019西安邀請賽總結

打鐵了 上來a題我寫的時候過於緊張 以至於慢了好幾分鐘 然後開m 我覺得m就是二分加判斷 出賽場之後一交流確實沒錯,但是我判斷寫的dijistra也不知道 寫錯了 隊友一直在開l zc推錯了規律 最後cly重新按照題目寫了好幾個樣例最後a掉,其實就應該用雜湊儲存集合狀態然後打個表就可以,其實規律題也...

2023年西安邀請賽

這是我到大學來第一次去校外參加比賽,還是蠻興奮的。路上火車轉地鐵,地鐵轉大巴,暈暈暈。到了西北工業大學後,先領服裝 隊員牌,然後照相。在大廳裡,能看到很多人,穿著一樣的橙色的衣服,當時就感覺acm這條道路上是不缺同道人的,熱身賽以及正式賽的時候這種感覺更加強烈。領完東西後就回酒店了,午飯是在西工大食...