思路:
這題和1227的求法一樣,只不過1227是小資料,暴力下,就能進行預處理。
這題的預處理區間期望cost[i][j]需要利用單調性。
即假使以pos位置為安排的點,那麼這個區間在其左邊的概率為l,右邊的概率為r,總期望為sum。如果將安排點從pos放到pos-1
該區間增加的期望為r*(p[pos].x-p[pos-1].x)
減少的期望為l*(p[pos].x-p[pos-1].x)
如果減少的超過增加的,那麼pos-1就比pos好。
#include#include#include
#include
#include
#define maxn 1010
using
namespace
std;
double dp[maxn][60
],cost[maxn][maxn];
struct
pointp[maxn];
mapvi;
intmain()
}int cnt=0
; map
::iterator it;
for(it=vi.begin();it!=vi.end();it++)
p[++cnt].x=it->first,p[cnt].p=it->second;
double
l,r,sum;
intpos;
double
t;
for(i=cnt;i>1;i--)
cost[j][i]=sum;}}
for(i=1;i<=cnt;i++)
dp[i][
1]=cost[1
][i];
for(i=1;i<=m;i++)
dp[1][i]=0
;
for(k=2;k<=m;k++)
dp[i][k]=1e20;
for(j=i-1;j>=1;j--)
dp[i][k]=min(dp[i][k],dp[j][k-1]+cost[j+1
][i]);}}
printf(
"%.2lf\n
",dp[cnt][m]);
}return0;
}
利用dispatch once建立單例
無論是愛還是恨,你都需要單例。實際上每個ios或mac os應用都至少會有 什麼是單例呢?wikipedia是如此定義的 在軟體工程中,單例是一種用於實現單例的數學概念,即將類的例項化限制成僅乙個物件的設計模式。或者我的理解是 單例是一種類,該類只能例項化乙個物件。儘管這是單例的實際定義,但在fou...
利用dispatch once建立單例
有些變數只需要初始化一次 如從檔案中讀取配置引數,讀取裝置型號等等 可以使用dispatch once來進行讀取優化,保證只呼叫api一次,以後就只要直接訪問變數即可 無論是愛還是恨,你都需要單例。實際上每個ios或mac os應用都至少會有 什麼是單例呢?wikipedia是如此定義的 在軟體工程...
利用dispatch once建立單例
無論是愛還是恨,你都需要單例。實際上每個ios或mac os應用都至少會有 什麼是單例呢?wikipedia是如此定義的 在軟體工程中,單例是一種用於實現單例的數學概念,即將類的例項化限制成僅乙個物件的設計模式。或者我的理解是 單例是一種類,該類只能例項化乙個物件。儘管這是單例的實際定義,但在fou...