N個人,M道題,M個小時,每個人做一道題需要1個小時。給出一個N*M的矩陣代表每個人做對每道題的概率。然後要求在任何時刻,任意兩個人的敲題時間差不能大於1,也就是說,m道題要分成多段長度為n的最優排列,n為10,2^10=1024 1024*1000 狀壓即可。
#include#include #include #include #include #include #include using namespace std; int n,m; double ans; double p[1111][1111]; double dp[1111][1111]; int main() { int t; int cas=1; scanf("%d",&t); while(t--) { for(int i=0;i<=1024;i++) { for(int j=0;j<=1000;j++) { dp[i][j]=-1; } } ans=-1; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { scanf("%lf",&p[i][j]); } } int s=(1<