HDU 2554 n對數的排列 數論 總結規律題

2022-05-15 02:15:21 字數 760 閱讀 8894

題意:n對數,大小為1、2、3、...、n。現要求兩個1之間有1個數,兩個2之間有2個數,以此類推,兩個n之間有n個數, 並且,數的次序可以隨意的。

解法:我們用sum()表示求和運算。

1.設k(k=1,2,..,n)放置的第乙個位置為ak,第二個位置為bk。顯然有bk-ak=k+1(ak那麼會有sum(bk-ak)=2+3+4+...+(n+1)=(1+2+3+...+n)+(1+1+...+1)=n*(n+3)/2。

2.又因為要有2*n個位置來放置這2*n個數。則sum(ak+bk)=1+2+3+...+2*n=(1+2*n)*(2*n)/2=(1+2*n)*n。

3.sum(ak+bk)=sum(ak+ak+k+1)=sum(2*ak+bk-ak)=2*sum(ak)+sum(bk-ak)=2*sum(ak)+n*(n+1)/2+n。

4.解方程②③可得 sum(ak)=n*(3*n-1)/, sum(bk)=n*(n+1)/4。

分析:情況只有兩種:

1.ak,bk都不為整數。    2.ak,bk都為整數。

情況1必定無解。

讓我們疑惑的是, 情況2, 方程有解就一定存在乙個我們要的排序嗎? 答案是一定。

我們可以這麼想,方程有解說明有很多排序情況,有些不符合題目要求,但一定有一組是滿足題目要求的,因為我們列式的時候把這種情況也列進去了,方程有解,說明我們要的這種特殊情況存在。

view code

#include#include

intmain()

hdu2554 N對數的排列問題

假設所有的2n個資料的位置分別從1 2n標號。現在假設其中第ai個資料 雙胞胎 和bi。那麼他們的位置則相差i 1個位置 同理,那麼所有n組雙胞胎相差的資料sum bi ai i 1 2n 2 3 4 n n 1 n n 3 2 所有位置的和sum ai bi 1 2 n 2 n 2 又因為sum ...

HDU 2554 N對數的排列問題

n對數的排列問題 思路 設ai為第i個寶寶第一次出現的位置,bi是他第二次出現的位置,則bi ai i 1 bi ai 2 3 4 n 1 n 3 n 2 ai bi 1 2 3 2 n 2 n 1 n 得 2 ai 3 n2 n 2 ai 3 n 1 n 4 因為ai都為整數,所以 ai也為整數。...

HDU 2554 N對數的排列問題

link hdu 2554 這是昨天晚上小練裡面比較有趣的一道題 我在做的時候思路錯了,以為數字的排列會有規律,結果後面發現就算有也很難找.看了網上的題解,有一種恍然大悟的感覺,就直接把它當做方程來解,只要符合題意的x,y存在即可 題解 假設雙胞胎數為n,那麼就共有2n個人,把雙胞胎分開,分別記為a...