寧夏網路賽 F Moving On

2022-07-23 18:03:25 字數 1697 閱讀 3797

一道簡單的floyd題,,但是是動態加點求多次有限制的最短路,,感覺這個思想很好,,當然可以直接dp

題目給你乙個圖,然後對於每乙個節點都有乙個點權,然後有q次詢問,每次詢問兩點間的最短距離,並且最短路徑中不能通過任意乙個點權大於等於w的點,(首尾不算),,

一次詢問的話,直接最短路亂搞就行了,,但是詢問次數很多的時候,就不能每一次建圖跑,因為是任意兩點的最短路,而且給的圖是鄰接矩陣 ,所以用floyed,,,但是怎麼處理每一次的詢問呢,,一種做法是再加一維,處理出任意的加入前k個點後的最短路,,最後回答詢問即可,,,也就是dp的思想,,另一種是詢問離線,動態建圖跑q次floyed即可,,後面這種思路以前見過但是沒套floyed用過,,

#include #define aaa cout<<233<1e9

const ll linf = 0x3f3f3f3f3f3f3f3f;

const double eps = 1e-7;

const double pi = 3.14159265358979;

const int maxn = 2e2 + 5;

const int maxm = 2e4 + 5;

const int mod = 1e9 + 7;

int d[maxn][maxn];

struct query

}qry[maxm];

bool cmpid(query a, query b)

pairr[maxn];

int main()

}++cnt;

}qry[qi].ans = d[qry[qi].u][qry[qi].v];

}sort(qry + 1, qry + 1 + q, cmpid);

cout << "case #" << ca++ << ":" << endl;

for(int i = 1; i <= q; ++i)cout << qry[i].ans << endl;

}// cout << endl << (clock() - pp) / clocks_per_sec << endl;

return 0;

}

#include #define aaa cout<<233<1e9

const ll linf = 0x3f3f3f3f3f3f3f3f;

const double eps = 1e-7;

const double pi = 3.14159265358979;

const int maxn = 2e2 + 5;

const int maxm = 2e4 + 5;

const int mod = 1e9 + 7;

int d[maxn][maxn][maxn];

pairr[maxn];

int main()

// sort(r + 1, r + 1 + n, (pairi, pairj));

cout << "case #" << ca++ << ":" << endl;

int u, v, w;

while(q--)

}// cout << endl << (clock() - pp) / clocks_per_sec << endl;

return 0;

}

狀態不在,思路都理不清,,,emmmmmm(該收心努力了啊314,,,,,

(end)

寧夏網路賽H題 FFT

這道題在打網路賽的時候 我說了乙個假的dp 導致學長最後乙個小時全在證我的假dp 好丟人不對 沒什麼丟人的 好驕傲嗯 然後這道題是fft的乙個 然而我以前沒有學過fft 現在終於自己學會了 標程 include include include include include using namesp...

ACM寧夏賽記

啊哈哈哈哈哈水了個金啊 大一立的flag實現了啊 皇家每羊的第一枚region金啊 頓時覺得大學生涯得到了昇華了啊 一年半的acm生涯沒白費啊 抽風得瑟中 週六早成四點起床和隊友去了機場 翹了微機實驗和大霧實驗 中午劉老師請我們吃了羊雜碎 下午熱身賽ac自動機模板fg手寫了出來 woc,我一直以為f...

2019寧夏邀請賽1

rank solvedab cdef ghij klm?後面的不準確 號沒了oo oo.o oo o 當場通過 賽後通過 尚未通過 solved by viscaria viscaria s solution 維護乙個棧即可 solved by viscaria viscaria s solutio...