[uva12627]erratic expansion
演算法入門經典第8章8-12(p245)
題目大意:起初有乙個紅球,每一次紅球會分成三紅一藍,藍球會分成四藍(如圖順序),問k時的時候a~b行中有幾個紅色。
試題分析:很容易注意到,按照此種規律,矩形的左上角、右上角、左下角總是與上乙個時刻的圖形一樣,這是我們分治的基礎。
那麼,既然得到了上面的,利用字首和的思想,設f(k,i)表示k時刻從1到i行的紅色數量,則答案為f(k,b)-f(k,a-1)
我們知道,第i個時刻的正方形邊長為2^k,那麼當i小於等於2^k時,就是上乙個同樣行的紅色的數量*2(因為拓展了)
那麼如果i大於2^k時,我們要怎麼辦呢?
首先,最顯而易見的是左上角與右上角都是上乙個時刻的圖形,那麼k時刻的紅色總和為3^k,所以左上角右上角加起來就是2*(3^(k-1))。
那麼剩下的那些也就是同上面的一樣計算,也就是f(k-1,i-2^(k-1))了。
**:
#include#include#include#include#includeusing namespace std;#define ll long long
inline ll read()
const ll inf=9999999;
const ll maxn=100000;
ll t; ll c[maxn+1];
ll case;
ll k,n,m;
ll f(ll k,ll p)
int main()
return 0;
}
數形結合思想
數形結合 數與形是數學中的兩個最古老,也是最基本的研究物件,它們在一定條件下可以相互轉化。中學數學研究的物件可分為數和形兩大部分,數與形是有聯絡的,這個聯絡稱之為數形結合,或形數結合。作為一種數學思想方法,數形結合的應用大致又可分為兩種情形 或者借助於數的精確性來闡明形的某些屬性,或者借助形的幾何直...
uva 1451 Average 數形結合
數形結合那篇 的例題,維護乙個下凸佇列,一開始為了省事,用了棧,但是原理上有問題,因為有可能正好起點為上凸點的情況,wa了好多次 author jxy lang c c university china,xidian university if you need to reprint,please ...
poj2018 斜率數形結合
題意 給定乙個長度為n的陣列,求其中長度大於等於k的連續的一段,使其算數平均值最大。輸出最大平均值 1000取整的結果。斜率斜率斜率。大致感覺可以用斜率來做。我試了試把最優決策的選擇化成斜率的式子,但發現這本來就是斜率的式子,於是就不知道怎麼弄了。何老師講的類似分數規劃的方法來做。但是我覺得斜率也應...