hdu 5312 Sequence 數學推導

2021-07-04 02:53:41 字數 586 閱讀 7270

解法:

這個題看上去是乙個貪心, 但是這個貪心顯然是錯的.

事實上這道題目很簡單, 先判斷1個是否可以, 然後判斷2個是否可以. 之後找到最小的整數k (k > 2), 使得(m - k) mod 6 = 0即可.

證明如下:

3n(n-1)+1 = 6(n*(n-1)/2)+1, 注意到n*(n-1)/2是三角形數, 任意乙個自然數最多只需要3個三角形數即可表示. 列舉需要k個。

事實上, 打個表應該也能發現規律.

1、3、6、10、15等等這些能夠表示成三角形的形狀的總數量的數,叫做三角形數。

一定數目的點或圓在等距離的排列下可以形成乙個等邊三角形,這樣的數被稱為三角形數。比如10個點可以組成乙個等邊三角形,因此10是乙個三角形數:

x x x

x x x

x x x x

x x x x x

開始個18個三角形數是1、3、6、10、15、21、28、36、45、55、66、78、91、105、120、136、153、171……(oeis中的數列a000217)

第n個三角形數的公式是 n*(n-1)/2 或 ((2*n+1)^2-1)/8

hdu5312 Sequence 三角形數的應用

給乙個數,問最少由多少 個 3 n n 1 1的數字構成 n n 1 2是三角形數,任意乙個數可以由不超過三個三角形數構成,假設有k個數 6 a1 ak k n n k 6 0 最小的k就是答案,需要特判下k 1 或2 的情況 include include include include incl...

HDU 5312(規律 數學)

思路 這個題看上去是乙個貪心,但是這個貪心顯然是錯的.事實上這道題目很簡單,先判斷1個是否可以,然後判斷2個是否可以.之後找到最小的k k 2 k k 2 使得 m k mod 6 0 m k m od6 0即可.證明如下 3n n 1 1 6 n n 1 2 13n n 1 1 6 n n 1 2...

oracle找出sequence漏掉的數字

比如有99 條資料,但發現id 自增長 的最大值是100,怎麼找出那個漏掉的數啊 測試準備 drop table test create table test id integer drop sequence seq index create sequence seq index increment...