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

2022-03-20 04:34:23 字數 642 閱讀 1829

洛谷

codeforces

\(o(n^2m)\)的暴力懶得寫了,比較容易,可以自己想想。

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

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

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

時間複雜度\(o(n^2+nm)\)

#include#include#include#include#include#includeusing 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(動態規劃)

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