記錄乙個菜逼的成長。。記下spfa的兩種優化,大牛請無視
spfa演算法有兩個優化演算法 slf 和 lll:
slf:small label first 策略,設要加入的節點是j
jj,隊首元素為i
ii,若dis
t(j)
st(i )dist(j) < dist(i) dist(j )st(i ),則將j插入隊首,否則插入隊尾。 lll:large label last 策略,設隊首元素為i ii,每次彈出時進行判斷,佇列中所有dist值的平均值為x,若dis t(i) > xdist(i)>x dist(i )> x則將i ii插入到隊尾,查詢下一元素,直到找到某一i ii使得dis t(i) <=x dist(i)<=x dist(i )<=x ,則將i出對進行鬆弛操作。char str[maxn][maxn];
int vis[maxn][maxn],dis[maxn][maxn],n,m;
int ans[30],sum,cnt;
int dx = ,dy = ;
dequeq;
void spfa()
sum -= dis[f.fi][f.se];cnt--;
vis[f.fi][f.se] = 0;
for( int i = 0; i < 8; i++ )
else
sum += dis[nx][ny];cnt++;}}
}}
}void init()
SPFA的兩種優化SLF和LLL
spfa有兩種優化 spfa演算法有兩個優化策略slf和lll slf small label first 策略,設要加入的節點是j,隊首元素為i,若dist j x則將i插入到隊尾,查詢下一元素,直到找到某一i使得dist i x,則將i出隊進行鬆弛操作。slf 可使速度提高 15 20 slf ...
兩種優化查詢的方法
兩種優化表查詢的方法 1 表的查詢順序 針對多表查詢 oracle的解析器按照從右到左的順序處理from子句中的表名,因此from子句中寫在最後的表 基礎表 driving table 將被最先處理。在from子句中包含多個表的情況下,你必須選擇記錄條數最少的表作為基礎表。當oracle處理多個表時...
氣泡排序演算法的兩種優化
氣泡排序 三種實現,兩種優化 首先,我們先介紹bubblesort 就是氣泡排序,氣泡排序大家應該最熟悉不過了 氣泡排序演算法的運作如下 從後往前 1.比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最...