HDU 2554 N對數的排列問題

2022-05-30 16:18:09 字數 811 閱讀 5341

link:hdu 2554

這是昨天晚上小練裡面比較有趣的一道題~我在做的時候思路錯了,以為數字的排列會有規律,結果後面發現就算有也很難找......╮(╯▽╰)╭

看了網上的題解,有一種恍然大悟的感覺,就直接把它當做方程來解,只要符合題意的x,y存在即可~

題解:假設雙胞胎數為n,那麼就共有2n個人,把雙胞胎分開,分別記為a類和b類。在進行排列時,ak代表【年齡為k,同時所屬分類為a的人在排列中的位置】,同理,bk則表示【年齡為k,所屬分類為b的人在排列中的位置】~(注:在此假設ak若該排列能符合題目要求,那麼:

①bk-ak=k+1;(k=1,2,3,......,n)

②sum(bk-ak)=sum(k+1)=2+3+...+(k+1)=k*(k+3)/2;

③當ak,bk滿足以上兩個條件時,又應當有2k個位置來放雙胞胎

因此:sum(ak+bk)=1+2+3+......+2*k=k*(1+2k);

④同時:sum(ak+bk)=sum(2*ak+(bk-ak))=2*sum(ak)+sum(bk-ak)=2*sum(ak)+k*(k+3)/2;

只有當所有雙包胎都符合上面所有式子,那麼才存在符合題意的排列,so~應為共2n個數,那麼k=n時,bk=2n,ak=2n-n-1=n-1;

由上式可得:sum(ak)=n*(3n-1)/4,sum(bk)=5*n*(n+1)/4;當上面兩個式子為整數時,這個n是符合條件的~╮(╯▽╰)╭

**:

1 #include2 #include3

intmain()

4

//memory:228kb     time:31ms

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對數的排列 數論 總結規律題

題意 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...