CF183D T shirt(動態規劃)

2021-08-26 12:37:20 字數 774 閱讀 6758

洛谷

codeforceso(

n2m)

o (n

2m

)的暴力懶得寫了,比較容易,可以自己想想。

做法是這樣的,首先我們發現乙個結論:

對於某個顏色(我們就把尺寸當成染色問題好了),如果你拿的個數越多,那麼它對於答案的貢獻就越來越少。這個東西是顯然的,所以這個函式是乙個凸函式。

那麼這樣子就可以貪心,每次選擇對於答案貢獻最多的乙個顏色,然後同時更新一下它下一次再拿的時候對於答案的貢獻就好了。

時間複雜度o(

n2+n

m)o (n

2+nm

)

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define ll long long

#define max 3030

inline

int read()

int n,m;

double p[max][333],f[333][max],tmp[max],ans,d[333];

void calc(int k)

int main()

for(int i=1;i<=n;++i)

printf("%.10lf\n",ans);

return

0;}

CF183D T shirt(動態規劃,貪心)

洛谷 codeforces o n 2m 的暴力懶得寫了,比較容易,可以自己想想。做法是這樣的,首先我們發現乙個結論 對於某個顏色 我們就把尺寸當成染色問題好了 如果你拿的個數越多,那麼它對於答案的貢獻就越來越少。這個東西是顯然的,所以這個函式是乙個凸函式。那麼這樣子就可以貪心,每次選擇對於答案貢獻...