題目看上去感覺像是dijstra,但是不是最短路,而是在實踐允許的範圍內選擇最多的點去走完從1到n的路,這個想到的是動態規劃,以邊為核心,一條邊一條邊的掃過,如果這條邊對應的起點和終點連線上之後,對於從1到終點來說是有利的就加上那種,我還不是很理解,只是把標程看懂自己敲了一遍而已。
#include
using
namespace
std;
#include
const
int inf = 0x3f3f3f;//特別大的數,記下來
const
int maxn = 5005;
int dp[maxn][maxn], pre[maxn][maxn];
//dp[i][j]表示經過i個點,從1到j,其中點的個數包括j
struct edge
eg[maxn];
int n, m, t;
stack
reu;
int main()
}if (dp[i][n] <= t)
pos = i;//更新一次答案
}cout
<< pos << endl;
int ans = n;
while (ans != -1)
while (!reu.empty())
cout
<< endl;
}return
0;}
希望日後可以對dp有更深的理解! CF183D T shirt(動態規劃)
洛谷 codeforceso n2m o n 2m 的暴力懶得寫了,比較容易,可以自己想想。做法是這樣的,首先我們發現乙個結論 對於某個顏色 我們就把尺寸當成染色問題好了 如果你拿的個數越多,那麼它對於答案的貢獻就越來越少。這個東西是顯然的,所以這個函式是乙個凸函式。那麼這樣子就可以貪心,每次選擇對...
CF10D LCIS 動態規劃
鏈結 給出兩個長度分別為n,m n,m的數列,求最長上公升公共子串行的長度 設階段為 i,j i,j 表示第乙個串前i i個元素與第二個串前j j個元素 lci slci s根據lcs lcs的轉移方程,初步得出 if ai bi if a i bi dp i j dp i 1 j 1 1dp i,...
CF183D T shirt(動態規劃,貪心)
洛谷 codeforces o n 2m 的暴力懶得寫了,比較容易,可以自己想想。做法是這樣的,首先我們發現乙個結論 對於某個顏色 我們就把尺寸當成染色問題好了 如果你拿的個數越多,那麼它對於答案的貢獻就越來越少。這個東西是顯然的,所以這個函式是乙個凸函式。那麼這樣子就可以貪心,每次選擇對於答案貢獻...