HDU 2554 N對數的排列問題

2022-03-05 06:39:12 字數 730 閱讀 7418

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也為整數。

所以只要滿足(3*n-1)%4==0||n%4==0就是y,否則是n。

**:

#includeusing

namespace

std;

#define ll long long

#define pb push_back

#define mem(a,b) memset((a),(b),sizeof(a))

const

int inf=0x3f3f3f3f

;int

main()

return0;

}

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對數的排列問題

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

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