AcWing 361 觀光奶牛

2022-09-14 20:21:26 字數 872 閱讀 4961

原題鏈結

考察:二分+spfa

引入:形如 \(\)求其最大值,稱為01分數規劃問題.通過二分最大值,檢驗解的存在性,這樣的存在性具有單調性,所以可以用二分解決.

思路:想到二分之後,我們可以假設最大值 = mid,對於每乙個環,檢驗\(\) >=mid 如果為true,就調大mid,否則mid變小.

如果尋找每乙個環,時間複雜度應該是o(n2m*log2m)鐵tle,所以我們需要考慮優化.

首先必須整理式子,\(\sum_1^n f[i]\) >= mid*\(\sum_1^n t[i]\) 而這個等價於 \(\sum_1^n (f[i]-mid*t[i])\) 這個問題又等價於我們需要找到乙個環,環的邊權與點權符合上面的性質.此時如果我們把邊的權值變成f[i] - mid*t[i]就轉化為是否能在圖中找到正環.

#include #include #include #include using namespace std;

const int n = 1010,m = 5010;

const double eps = 1e-6;

int n,h[n],m,score[n],idx,cnt[n];

bool st[n];

double dist[n];

struct road

}road[m],path[m];

void add(int a,int b,double c)

bool spfa()

while(q.size())}}

return 0;

}bool check(double mid)

printf("%.2lf\n",r);

return 0;

}

物件導向36

同樣的類在不同檔案下 當你new乙個dog類 會在相應的classpath指定的順序去找 代表當前路徑 在前面 在後面不一樣的 classpath下 有兩個類 考慮另外個classpath也是類名 用eclipse 就沒這問題了 為了不和其它的class衝突 可以建在乙個新的目錄下 object p...

每日程式設計(36)

題目描述 矩形以列表 x1,y1,x2,y2 的形式表示,其中 x1,y1 為左下角的座標,x2,y2 是右上角的座標。如果相交的面積為正,則稱兩矩形重疊。需要明確的是,只在角或邊接觸的兩個矩形不構成重疊。給出兩個矩形,判斷它們是否重疊並返回結果。示例 1 輸入 rec1 0,0,2,2 rec2 ...

3 6 學習記錄

xmlhttprequest 是 ajax 的基礎。所有現代瀏覽器均支援 xmlhttprequest 物件 ie5 和 ie6 使用 activexobject 所有現代瀏覽器 ie7 firefox chrome safari 以及 opera 均內建 xmlhttprequest 物件。建立 ...