數學相關專題1

2021-06-20 15:53:38 字數 1607 閱讀 1632

本來準備來數學題專題訓練的,不過這次的題目都沒太大思維量,沒起到很好的效果。。。

在rqnoj的數論/數值 標籤裡看的題。。。基本成了高精度專題練習了。。。

題目一:wikioi1252 fib詞鏈

這個嘛。。。假設g[n]為fib[n]包含的原單詞數。。。其實g[n]就等於g[n-1]+g[n-2]+拼接後增加的部分。。。

然後就是怎麼算這個增加部分了。。。假設要查詢的串長度為len,其實只需要知道f[n-1]的後len-1個與f[n-2]的前len-1個字母。。。。所以每次都記下f[x]的前後一部分就好了。。。這個字串處理還是比較麻煩。。。可以看下**

#include#include#include#include#include#includeusing namespace std;

int p=10000;

struct bign

bign operator=(int x)

if(len==0)len=1;

return *this;

} bign operator +(int x) };

struct e

}f[200+10];

int len;

char s[30+10];

int n;

char temp[60+10];

int getnum(int x)

int main()

cout<

題目三:rqnoj 難題

這題還真是難(shui)啊。。。。就是裸的可重組合:公式c(n+m-1,n-1)...

然後用邊乘邊除的高精度從c(n+m-1,0)遞推過來 (但實際資料範圍比較小。。。不需要高精)

有個讓我比較不解的地方就是算c(n+m-1,n-1)會掛一組。。。要算c(n+m-1,m)才對。。。明明都是一樣的啊。。。有沒有神牛給我解釋下啊

#include#include#include#include#include#includeusing namespace std;

int n,m;

int p=1000;

struct bign

bign operator =(int x)

if(len==0)len=1;

return *this;

} bign operator *(int x)

}while(c.len&&c.num[c.len-1]==0)c.len--;

if(c.len==0)c.len=1;

return c;

} void print() };

void c(int d,int c)

x.print();

}int main()

題目四:rqnoj 愚蠢的組合數

就是判斷組合數的奇偶性。。。學到了乙個很重要的性質:當n&k==k時 c(n,k)為奇數,否則為偶數。。。

#include#include#include#include#include#includeusing namespace std;

int t,n,k;

int main()

return 0;

}

數學專題訓練3

這次是概率專練 選的題都比較基礎。因為我對概率的感覺很不到位啊啊啊啊 題目一 wikioi計算概率 這個就是古典概型嘛。先列舉選的第一根。然後再求出第選二根後和小於等於l的方案個數。然後答案很自然就是 這些方案個數的和 n n 1 了。考慮到n稍大。求方案數不能直接暴力。可以選擇二分來求 要注意選的...

數學專題訓練4

這次是矩陣與行列式 題目一 bzoj1013 我看到這題時反正沒什麼感覺。其實對於球來說。其上每乙個點到球心的距離都是相等的。於是就可以根據這個來列方程 設球心為 x1,x2,對於點 a1,a2,b1,b2,有 ai xi 2 bi xi 2 看起來很麻煩。因為方程有二次項 但其實這個式子是可以開啟...

10 3其他數學專題

10.3.1遞推 漢諾塔問題。分析 當n稍微大一點時,手工移動就開始變得困難起來,下面直接給出遞迴解法 首先,把前n 1個圓盤放到c軸 接下來把n號圓盤放到c軸 接下來把n號圓盤放到b軸 最後,再把前n 1個盤子放到b軸。斐波那契數列。走樓梯問題 f n f n 1 f n 2 養兔子問題 f n ...