學軍oj,題號1179,鏈結
也可以到
小藍準備去和小紅約會,小藍和小紅居住在乙個平面直角座標系中,小藍的家在(0,0)位置,小紅的家在(a,b)位置,小藍每一步可以往上下左右中的任意乙個方向移動乙個單位,換句話說,他可以從(x,y)走 到(x+ 1,y), (x- 1,y), (x,y+ 1), (x,y- 1)中的乙個位置。
不幸的是小藍的方向感比較差,所以他每次隨機選擇了乙個方向走出去,有時候可能走著走著走回了自己的家,有時候可能已經走到了小紅的家還沒有發現,又繼續走。
幸運的是,在乙個夜黑風高的夜晚,他終於走到了小紅的家,他高興地跟小紅說,從我家到你家我走了step步,現在你幫幫小紅計算一下,從小藍的家走到小紅的家有沒有可能走step步。
輸入一行,包含三個整數,a,b,step。
輸出一行,如果可能輸出「yes」,否則輸出「no」。
0 1 3
yes我一看到題目的第一反應,就是本題考dfs。學軍中學果然牛,一級四段的題目就能涉及dfs,然後開始仔細讀題目。題目讀完後,發現不是dfs,因為沒有說到每個地方只能走一次。核心就在這裡。每個地方可以任意走。所以只是簡單的判斷。
我們簡單分析一下題目:1、目的地點永遠是(0,0)。2、給定開始地點和步數。本題就是考察開始地點到(0,0)的距離和步數的關係。每次移動的方法是上下左右中的任意乙個方向移動乙個單位,因此我們可以知道從開始地點到(0,0)的最短步數應該是 (a-0)+(b-0) 也就是 a+b。下面我們來討論一下 a+b 和step的關係:
(1)a+b > step。那麼顯然是不可能完成的任務。
(2)a+b == step。正好是最小步數。
(3)a+b < step。這裡要仔細分析,可以發現最終 (step - a - b) 如果是偶數,肯定是可以走到。如果是奇數,肯定走不到。具體可以畫圖得出。
仔細閱讀題目,會發現 a 和 b 可能是負數,負數,負數。所以計算的時候要注意負數處理。
//約會
//#include
int main() else if (c==step) else else {
printf("no\n");
return 0;
九度oj 題目1179 階乘
題目1179 階乘 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 6120 解決 1785 題目描述 輸入n,求y1 1 3 m m是小於等於n的最大奇數 y2 2 4 p p是小於等於n的最大偶數 輸入 每組輸入包括1個整數 n 輸出 可能有多組測試資料,對於每組資料,輸出題目要求的...
學軍聯賽模擬 第十八測 題解
a.首先有個樸素的動態規劃思路 記 f 表示前 i 個位置 最後乙個位置的顏色是 j 的方案數。轉移要用到容斥原理 用總方案數減去 j 連續出現 a 1 次的方案數。記 g sum 則 f g g 1 f 1 j 注意到對於 a 相同的顏色顯然狀態相同 可以分批轉移。時間複雜度 o n 2 b.二分...
學軍11 29網路賽 題解 總結
題面 前一小時被迫打oi賽制。後面自身心情原因打acm賽制。a太過毒瘤,在3h多才切。d暴力題噁心死人。切abc。後面兩題甚至沒有心情打部分分,所以在切了a之後我的比賽已經結束了。300分整個機房最後一名 另外三位440,還有一位500拿rank1 一開始就想到做到後面有迴圈節並且迴圈節是2。但是在...