RQNOJ 62 NOIP2002 均分紙牌

2021-09-08 09:01:18 字數 475 閱讀 5408

rqnoj_62

我們可以將牌在相鄰堆之間的移動想象成經過了一條邊,那麼任意兩堆相鄰的牌之間都會有一條邊,而且在最優情況下每條邊應當是至多經過一次的,如果超過一次的話也可以通過相消變成至多經過一次。那麼如何確定一條邊要不要被走呢?實際上對於任意一條邊來講,都將牌劃分成了左右兩部分,如果兩部分各自內部不能平衡的話就會通過這條邊來達到平衡的目的。這樣掃一遍字首和就可以判定有多少條邊需要經過了,而經過的邊的數量就是最後的結果。至於可行性,由於最後需要經過的邊都是有向的,所以會形成乙個有向圖,按有向圖的方向移動牌即可。

#include#include

#define maxd 110

intn, a[maxd];

void

solve()

printf(

"%d\n

", cnt);

}int

main()

1320 例6 2 均分紙牌 Noip2002

有n堆紙牌,編號分別為 1,2,n。每堆上有若干張,但紙牌總數必為n的倍數。可以在任一堆上取若干張紙牌,然後移動。移牌規則為 在編號為1的堆上取的紙牌,只能移到編號為 2 的堆上 在編號為 n 的堆上取的紙牌,只能移到編號為n 1的堆上 其他堆上取的紙牌,可以移到相鄰左邊或右邊的堆上。現在要求找出一...

noip2002 矩形覆蓋

在平面上有 n 個點 n 50 每個點用一對整數座標表示。例如 當 n 4 時,4個點的座標分別為 p1 1,1 p2 2,2 p3 3,6 p4 0,7 如圖1。這些點可以用 k 個矩形 1 k 4 全部覆蓋,矩形的邊平行於座標軸。當 k 2 時,可用如圖2的兩個矩形 sl,s2 覆蓋,s1,s2...

NOip2002均分紙牌

題目描述 有 n 堆紙牌,編號分別為 1,2,n。每堆上有若干張,但紙牌總數必為 n 的倍數。可以在任一堆上取若於張紙牌,然後移動。移牌規則為 在編號為 1 堆上取的紙牌,只能移到編號為 2 的堆上 在編號為 n 的堆上取的紙牌,只能移到編號為 n 1 的堆上 其他堆上取的紙牌,可以移到相鄰左邊或右...