時間限制:
2000ms
單點時限:
1000ms
記憶體限制:
256mb
大神同學是乙個熱愛數字的孩子,她無時無刻不在思考生活與數學的聯絡。有一天,她發現其實公曆的設計是有講究的。
每4年就會多閏一天,每一百年又會有一年不是閏年,而第四百年又是閏年。這樣,這四百年的週期裡每一年平均有365又400分之97天。
大神同學將上面的規律簡記為100-4+1=97。
大神同學想知道是不是每乙個自然數都能按照上面的形式表示出來,具體來說就是,大神同學希望將乙個自然數n寫成a1
- a2
+ a3
- a4
+ …的形式,其中
a1是a2的倍數,a2是a3的倍數,依此類推。另外,大神同學不想讓這個問題變得太無聊,她還增加了一些附加條件:
1. 其中ai
≠ aj
(i ≠ j),即相鄰的兩個數前乙個至少是後乙個的兩倍或以上。
2. 數列的長度至少為3,不能超過100(大神同學覺得數列太長一定可以找到答案)。
3. 構造出來的數列中的每乙個數不能太大,因此大神同學希望數列中的每乙個數都是小於263的正整數。
大神同學思考了一會兒,發現這個問題似乎沒有那麼簡單,現在她求助於你,希望你能幫她解決這個不太簡單的問題。
第一行包括乙個數t,表示資料的組數。
接下來包含t組資料,每組資料一行,包括乙個整數n。
對於每組資料,輸出一行「case x:
」,其中x表示每組資料的編號(從1開始),後接乙個字串「no solution」表示無解,或者輸出一列數,相鄰兩個數之間用空格隔開。如果有多組數列滿足要求,輸出任意一組。
小資料:
1 ≤ t ≤ 10
1 ≤ n ≤ 100
大資料:
1 ≤ t ≤ 1000
1 ≤ n ≤ 1018
樣例輸入
2 1 97
樣例輸出
case 1: no solution case 2: 100 4
自己直接暴力寫的,結果大資料果斷跪了,呼呼,貼下大神的**,膜拜一下!
#include #include #include using namespace std;
int main()
}return 0;
}
2014程式設計之美初賽第二場
時間限制 2000ms 單點時限 1000ms 記憶體限制 256mb 大神同學是乙個熱愛數字的孩子,她無時無刻不在思考生活與數學的聯絡。有一天,她發現其實公曆的設計是有講究的。每4年就會多閏一天,每一百年又會有一年不是閏年,而第四百年又是閏年。這樣,這四百年的週期裡每一年平均有365又400分之9...
2014程式設計之美初賽第二場
時間限制 2000ms 單點時限 1000ms 記憶體限制 256mb 大神同學是乙個熱愛數字的孩子。她無時無刻不在思考生活與數學的聯絡。有一天,她發現事實上公曆的設計是有講究的。每4年就會多閏一天,每一百年又會有一年不是閏年。而第四百年又是閏年。這樣。這四百年的週期裡每一年平均有365又400分之...
程式設計之美初賽第二場
problem a 一邊輸入邊一邊維護殘留網路,然後跑isap。小資料過了,大資料tle。據說可以bfs預處理 層次網路。可以過。view code include include include include using namespace std const int inf 10000000 ...