USACO09FEB 改造路題解

2022-05-02 02:09:10 字數 758 閱讀 3272

題目鏈結

今天機房模擬賽的題目,先用爆搜做的,後面去寫了dijkstra(沒想到過掉了)

本菜雞之前並沒有學過分層圖,所以我感覺用的是dijkstra加動態規劃的思想

我們用\(dis[i][j]\)來表示到從1號牧場到第\(i\)號牧場公升級\(j\)條路所花的最短時間,設第\(x\)號牧場與第\(i\)號牧場相連通,\(road(i,x)\)表示\(i\)到\(x\)的路徑長度,從\(i\)到\(x\),要麼公升級路徑,要麼就不公升級,那麼不難發現

\(dis[x][j]=min(dis[i][j]+road(i,x),dis[x][j])\)

\(dis[x][j+1]=min(dis[i][j],dis[x][j+1])\)

接下來講講我的dijkstra,用\(k\)個堆來存最小的\(dis[i]\),從不公升級路徑列舉到公升級k條路徑,下面是這一部分的**

for(int j=0; j<=k; j++)  //列舉公升級路徑的條數

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

for(int j=0; j<=k; j++)

dis[i][j]=1e9; //記得賦初值

dis[1][0]=0,p.a=1,p.sum=0;

q[0].push(p);

for(int j=0; j<=k; j++) //列舉公升級路徑的條數

if(j!=k&&p.sum}

}} }

cout

}

洛谷1607 USACO09FEB 廟會班車

逛逛集市,兌兌獎品,看看節目對農夫約翰來說不算什麼,可是他的奶牛們非常缺乏鍛鍊 如果要逛完一整天的集市,他們一定會筋疲力盡的。所以為了讓奶牛們也能愉快地逛集市,約翰準備讓奶牛們在集市上以車代步。但是,約翰木有錢,他租來的班車只能在集市上沿直線跑一次,而且只能停靠n 1 n 20000 個地點 所有地...

Usaco2010 Feb 覆蓋牛棚

主要思路,並查集縮點 對於可以合併的欄杆,我們強行合併成乙個欄杆 當然要保證最優 然後一點點更新即可 include include using namespace std const int maxn 2e6 3 struct nodep maxn int nex maxn pos maxn ju...

P2983 USACO10FEB 購買巧克力

題解 注意題目開 long long 貪心策略 從低到高,買夠為止 反證 若剩下的有乙個k 比k小,那麼交換,穩賺不賠 所以,在買k之前,所有比他便宜的都買完了 include include include include include include include include using...