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,所以不存在這樣乙個點。...