刷水題什麼的最愉快了。
題意十分明了,就是選出一種分配方案將士兵分為若干組,使修正後的戰鬥力最大。
我們先可以寫出暴力dp轉移:
設\(f[n]\)為將前\(i\)個士兵分組,且第\(i\)個士兵為最後一組最後乙個的最大戰鬥力。
\(f[i]=max_^^x[j]\)
則化為:\(f[i]=max_^tmp,q[n];
inline int read()
while(ch>='0'&&ch<='9') t=(t<<3)+(t<<1)+(ch-48),ch=getchar();
return f*t;
}bool check(point u,point v,int z)
bool check2(point u,point v,point z)
int main()
printf("%lld\n",ans);
return 0;
}
特別行動隊題解
顯然遇到這種dp題我們要先打暴力,通過讀題我們可以快速推出dp式子 狀態 設 dp i 為前i個人的最大價值 狀態轉移方程 設 sum i a k x dp i max dp j a x 2 b x c 累加我們可以直接字首和優化,設 sum i a k sum i 那麼轉移方程即可化為 dp i ...
特別行動隊 斜率優化
apio2010特別行動隊 令s為字首和,那麼n方dp f i max 展開,移項得到 f j a s j s j 2 a s i b s j f i a s i s i b s i c。即以f j a s j s j 為y,s j 為x的一次函式,用斜率優化。因為斜率單調遞減,所以維護乙個單調遞減...
APIO2010 特別行動隊
你有一支由 n 名預備役士兵組成的部隊,士兵從 1 到 n 編號,要將他們拆分 成若干特別行動隊調入戰場。出於默契的考慮,同一支特別行動隊中隊員的編號 應該連續,即為形如 i,i 1,i k i,i 1,i k 的序列。編號為 i 的士兵的初始戰鬥力為 xi 一支特別行動隊的初始戰鬥力 x 為隊內 ...