遇到這種題目就想到了bfs,但是狀態會不會太多了啊?
我們可以借助noip2017pjt3「棋盤」的思想,用spfa搞掉。
我們同樣搞乙個vis
陣列,dist
陣列,在佇列裡面自己搞個結構體或者pair。
然後就可以類似於spfa那樣寫出來乙個奇怪的程式了。
不知道為什麼,我死活會t掉幾個點只有80pts,看了標程也不知道我錯在**,我太弱了。
日後如果這道題的題解豐富起來我應該會來補鍋。
**:(80pts的程式)
// luogu-judger-enable-o2
#include#include#include#includeconst int maxn = 1000005;
struct edges
e[maxn << 1];
int head[maxn], tot;
struct nodes
};bool vis[maxn];
int dist[maxn];
int n, m, s, t;
int read()
while(ch >= '0' && ch <= '9') ans = ans * 10 + ch - '0', ch = getchar();
return s * ans;
}void link(int u, int v, int t, int k)
; head[u] = tot;
}int main()
memset(dist, 0x3f, sizeof dist);
std::queueq;
dist[s] = 0;
q.push(nodes(s, 0)); vis[s] = true;
while(!q.empty())}}
}if(dist[t] == 0x3f3f3f3f) printf("bao 0\n");
else printf("%d\n", dist[t]);
return 0;
}
P2801 教主的魔法
題目描述 這裡 思路 這題似乎是道分塊裸題。在查詢時,我們可以對每個塊進行排序,然後二分查詢 k的元素,輸出答案。不幸的是,這道題有點卡分塊。我們可以改變塊的大小和加入優化進行卡常。include pragma gcc optimize 2 pragma gcc optimize 3 pragma ...
洛谷 P2387 魔法森林
題目描述 為了得到書法大家的真傳,小 e 同學下定決心去拜訪住在魔法森林中的隱 士。魔法森林可以被看成乙個包含 n 個節點 m 條邊的無向圖,節點標號為 1,2,3,n,邊標號為 1,2,3,m。初始時小 e 同學在 1 號節點,隱士則住在 n 號節點。小 e 需要通過這一片魔法森林,才能夠拜訪到隱...
洛谷 P2387 魔法森林
為了得到書法大家的真傳,小 e 同學下定決心去拜訪住在魔法森林中的隱 士。魔法森林可以被看成乙個包含 n 個節點 m 條邊的無向圖,節點標號為 1,2,3,n,邊標號為 1,2,3,m。初始時小 e 同學在 1 號節點,隱士則住在 n 號節點。小 e 需要通過這一片魔法森林,才能夠拜訪到隱士。魔法森...