free(牛客多校第四場)

2021-09-26 02:29:40 字數 600 閱讀 7922

free

本題可以通過常規的最短路演算法改變來得到,通過在最短路演算法中加乙個長度為k的迴圈,判斷k條路免費後的最小權值即可。

#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f

using namespace std;

typedef long long ll;

const int maxn=1005;

struct sa

;vectora[maxn];

int n,m,s,t,k,dis[maxn][maxn],vis[maxn];

void spfa(int x)}}

}int main()

),a[v].push_back();

}spfa(s);//常規spfa

int minn=inf;

for(int i=0;i<=k;i++)minn=min(minn,dis[t][i]);//判斷幾條路免費的權值最小

cout

}

牛客多校第四場G Maximum Mode(模擬)

題目大意 給出乙個n個數的序列,我們可以刪除m個數,然後我們要求出現次數最多並且最大的,也就是如果出現次數最多的有多個,那就必須刪除其他的數,避免出現次數最大的有多個,然後我們要求值最大,所以我們還要盡量判斷值大的 題目思路 首先我們先明確我們要取什麼數 1.次數最多並且值最大的 2.且最大值唯一,...

2019牛客多校第四場 D triples I

對於二進位制每一位上的1進行考慮,2 0 3 1 2 1 3 2 2 2 3 1 2 3 3 2 那麼我們可以想到把a轉化為二進位制,然後他 3 1的位數有cnt1個,3 2的位數有cnt2個。我們可以想到每個數字最多由2個數字組成,下面給出證明。那麼 sum a 3,如果sum 0,那麼直接乙個數...

2019牛客多校第四場 A meeting

考場上寫了一大坨樹形dp,寫的時候就感覺我這不是跟求樹的最長鏈寫的一毛一樣 然後考後看題解,果然是k個ren所連成的子樹的最長鏈的一半 可以利用反證法證明,如果在長度為d的最長鏈的中間放乙個中心,如果有另外乙個點到這個點的長度 d 1 2,那麼這個點到對面的那個點的長度大於d,所以不存在這樣乙個點。...