原创 數論中的一個小證明 如果一個整數的各個數字之和能被3(或9)整除,那麼這個數就一定能被(3 )或(9 )整除。

證明:以三位數爲例,100a+10b+c,如果a+b+c可以被3整除,那麼99a+9b+a+b+c也可以被三整除,9也同理,因爲個位數只有一位,所有隻能拆一份a+b+c,所以,只適用3,9。

原创 uva1631

題意:有一個n(n≤1000)位密碼鎖,每位都是0~9,可以循環旋轉。每次可以讓1~3個相鄰 數字同時往上或者往下轉一格。例如,567890->567901(最後3位向上轉)。輸入初始狀態 和終止狀態(長度不超過1000),問最少要轉幾次

原创 uva1375 難題

#include<iostream> #include<algorithm> #include<math.h> #include<string.h> #include<stdio.h> #include<string> #include

原创 uva1204

#include<iostream> #include<algorithm> #include<math.h> #include<string.h> #include<stdio.h> #include<string> #include

原创 uva12099 Bookcase ACM NWERC

書上,作者分析很詳細  #include<iostream> #include<algorithm> #include<math.h> #include<string.h> #include<stdio.h> #include<stri

原创 uva1228

#include<iostream> #include<algorithm> #include<math.h> #include<string.h> #include<stdio.h> #include<string> #include

原创 uva242

題目描述:假定一張信封最多貼5張郵票,如果只能貼1分和3分的郵票,可以組成面值1~13以及 15,但不能組成面值14。我們說:對於郵票組合{1,3}以及數量上限S=5,最大連續郵資爲 13。 輸入S(S≤10)和若干郵票組合(郵票面值不超

原创 uva1629

題目描述:有一個n行m列(1≤n,m≤20)的網格蛋糕上有一些櫻桃。每次可以用一刀沿着網格線把 蛋糕切成兩塊,並且只能夠直切不能拐彎。要求最後每一塊蛋糕上恰好有一個櫻桃,且切割 線總長度最小。 分析:dp切割行和列 #include<i

原创 uva1630

題目描述:給出一個由大寫字母組成的長度爲n(1≤n≤100)的串,“摺疊”成一個儘量短的串。例 如,AAAAAAAAAABABABCCD摺疊成9(A)3(AB)CCD。摺疊是可以嵌套的,例 如,NEERCYESYESYESNEERCYES

原创 uva10118

題意:給定4堆糖果,每堆有n顆,有一個最多可以裝5個糖果的袋子,每次選擇一堆糖果,把最頂上的一顆拿到袋子裏,如果袋子裏有兩顆一樣的糖果就拿走。問最多可拿幾對。 分析:枚舉每次可以從4堆中任意一堆拿走。 #include<iostream

原创 對局匹配

小明喜歡在一個圍棋網站上找別人在線對弈。這個網站上所有註冊用戶都有一個積分,代表他的圍棋水平。 小明發現網站的自動對局系統在匹配對手時,只會將積分差恰好是K的兩名用戶匹配在一起。如果兩人分差小於或大於K,系統都不會將他們匹配。 現在小明知

原创 發現環(並查集)

#include<iostream> #include<algorithm> #include<math.h> #include<string.h> #include<stdio.h> #include<string> #include

原创 搭積木

 問題描述 小明對搭積木非常感興趣。他的積木都是同樣大小的正立方體。 在搭積木時,小明選取 m 塊積木作爲地基,將他們在桌子上一字排開,中間不留空隙,並稱其爲第0層。 隨後,小明可以在上面擺放第1層,第2層,……,最多擺放至第n層。擺放積

原创 uva1628 最優路徑問題

和修繕長城uva1336一起看 #include<iostream> #include<algorithm> #include<math.h> #include<string.h> #include<stdio.h> #include<

原创 uva10559

兩種情況:1.找到相似方塊直接消去                   2.將中間方塊枚舉消去,兩邊方塊可以累計平方更大。 #include<iostream> #include<algorithm> #include<math.h>