uoj 長度測量雞

2021-08-28 07:16:15 字數 1157 閱讀 7562

新年到新年到!計算雞村全村上下家家戶戶開始貼起了春聯。

計算雞村共有 nn 戶村民,現在每兩戶計算雞都合作製作了一副春聯,加上每家每戶自己的,一共有 n(n+1)2n(n+1)2 副春聯。

計算雞對春聯的長度有這特殊的癖好,他們希望這 n(n+1)2n(n+1)2 副春聯長度各不相同,於是計算雞村長找來一根長度為 n(n+1)2n(n+1)2 的木條,想要把它做成一把尺,使得它能量出不超過 n(n+1)2n(n+1)2 的所有正整數長度。

計算雞們很懶,他們連劃刻度都覺得累,於是他們決定在木條上劃出恰好 n−1n−1 個刻度,並使它滿足計算雞村長的條件。

可是有的時候他們想啊想啊,想破雞蛋都想不出來如何安排刻度,於是他們懷疑根本就不存在安排刻度的方法,想讓你幫忙驗證。

你只需要對於給定的 nn,告訴計算雞們是否存在合法的雕刻刻度的方法。

乙個長度 dd 能被木條量出當且僅當存在兩個不同的刻度之間,刻度與兩個端點之間,或木棍兩個端點的距離恰好為 dd。

更加數學的描述:假如你安排的刻度到木棍左端的距離由近至遠分別為 s1,s2,…,sn−1s1,s2,…,sn−1,令 s0=0,sn=n(n+1)2s0=0,sn=n(n+1)2,則長度 dd 能被量出當且僅當存在 0≤i,j≤n0≤i,j≤n 使得 ∣si−sj∣=d∣si−sj∣=d。

輸入格式

多組資料,第一行為資料組數 t≤10t≤10,以下 tt 行為 tt 個正整數 nn。

輸出格式

輸出共 tt 行, 每行為乙個整數, 表示能否給出滿足要求的刻度。 能則輸出 11,不能則輸出 −1−1。

樣例一input21

100output1-1

一開始我是懵逼的,後來才會做,就是太菜了。。

不難看出如果把一根木棍分成n段,算上所有情況(可重複)是n*(n+1)/2種,那麼我們來考慮這道題目:

如果要計算n-1,那麼一定在1的位置劃一刀,如果要計算n-2,有3種可能:在n-2的位置劃一刀,在2的位置劃一刀或者在n-1的位置劃,那麼後面兩種是不允許的,因為這樣計算1的時候就會有多種方法,那就算不到n*(n+1)/2種了。在計算n-3的時候也是同理,發現只能放在中間,n-4的時候便沒有方法。

#includeusing namespace std;

int main()

return 0;

}

UOJ 282 長度測量雞

一場跨年ur的a 非常鬼畜 題目大意是把長度為n n 1 2的尺子恰好分成n段,使1 n n 1 2中的任意整數都可以在尺子上找到兩刻度 包括邊界 使其間長度與之相等 其實問題可以轉化一下,刻度劃好後,先不考慮重複的問題,則可以量出的組合有n n 1 2中 n 1個點組成的線段數 那麼就有乙個顯而易...

測量菜雞的基地總結

我怕是被人認出來了,刪了 1.遇到事情願意和你分享 無論好事壞事 如果是那種特別內向,難以溝通的,千萬別組隊 2.願意參加基地學習,學習態度好的人,並且不會總是翹基地課 不能是來上課玩手機 3.愛思考,思維能力 邏輯能力強,反射弧老長的直接可以退了,這種人做不了比賽。4.好的隊伍之間,隊友私下都是很...

String型別的測量長度

今天敲一條c 程式設計題目,要求我把乙個字串的長度測量出來,於是,我嘗試這麼敲 include include using namespace std string a cin a int count 0 count strlen a 但是vs告訴我,strlen a 這一塊出現了問題,我通過上網搜...