新年到新年到!計算雞村全村上下家家戶戶開始貼起了春聯。
計算雞村共有 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 這一塊出現了問題,我通過上網搜...