日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[测试题]打地鼠

發布時間:2023/11/30 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [测试题]打地鼠 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Description

小明聽說打地鼠是一件很好玩的游戲,于是他也開始打地鼠。地鼠只有一只,而且一共有N個洞,編號為1到N排成一排,兩邊是墻壁,小明當然不可能百分百打到,因為他不知道地鼠在哪個洞。小明只能在白天打地鼠,而且每次打了都覺得好累,感覺再也不會打了,必須休息到第二天才能再次打地鼠,也就是說他每天只有一次打地鼠的機會。

地鼠非常聰明,為了盡可能的不被打到,它每天晚上都會跑向相鄰的兩個洞中的一個,如果一邊是墻壁就只有往另一邊跑,而且它很固執,每天晚上肯定會跑,也就是說不會連續呆在同一個洞。

盡管小明很累,但是他明白要想拿到一等獎,就必須打到地鼠,所以他想知道怎樣才能在最短的天數內保證肯定打到地鼠。

Input

輸入文件mouse只有一行,該行有一個整數N,表示N個洞并排在一起。地鼠在隨機一個洞。

Output

輸出文件mouse.out只有一行,該行有一個整數,表示小明肯定能打中至少需要的天數。

Sample Input

4

Sample Output

4

Hint

40% n<=10

100% n<=100.

題解

? ?這道題首先是要考慮怎樣才能夠保證一定能夠打中。如果每天選擇洞的規律和地鼠移動的規律一樣,也就是每天都選前一天相鄰的一個洞,那么可以發現,每次你選擇的洞口和地鼠所在洞口的距離要么不變,要么增加二或者減少二,按這樣從一邊墻壁檢查到另一邊墻壁,如果沒有發現地鼠,那就說明地鼠的初始位置和你的初始檢查距離為奇數,這個時候再重復檢查一次你剛檢查過的洞口,那么因為地鼠必須要移動,你們的距離就修改成了偶數,這樣再從另一邊檢查回來,就保證一定能夠發現地鼠。這樣算下來的結果是$2N$。

??但是可以再分析一下,第一遍掃描的$N$次的意義在與檢查你和地鼠的距離是否為偶數,第二次的意義在于把奇數變為偶數。那么第一次完全可以只從$N-1$掃描到$2$(因為地鼠如果在$N$號洞或者$1$號洞與你的距離都為奇數,和第一次的任務沒有關系),第二次也從$2$掃描到$N-1$(因為距離如果是偶數那么相遇時肯定是地鼠與你相向運動,也就是地鼠從相遇點后面過來的,所以不可能會在$1$號和$N$號洞相遇)。最后再考慮只有$1$,和$2$兩個洞這兩種特殊情況。

來自@Z-Y-Y-S的一個例子:

(感謝@Z-Y-Y-S!!)

?

1 //It is made by Awson on 2017.9.19 2 #include <map> 3 #include <set> 4 #include <cmath> 5 #include <ctime> 6 #include <queue> 7 #include <stack> 8 #include <cstdio> 9 #include <string> 10 #include <vector> 11 #include <cstdlib> 12 #include <cstring> 13 #include <iostream> 14 #include <algorithm> 15 #define LL long long 16 #define Max(a, b) ((a) > (b) ? (a) : (b)) 17 #define Min(a, b) ((a) < (b) ? (a) : (b)) 18 #define Abs(a) ((a) < 0 ? (-(a)) : (a)) 19 #define lowbit(x) ((x)&(-(x))) 20 using namespace std; 21 22 int n; 23 void work() { 24 if (n <= 2) printf("%d\n", n); 25 else printf("%d\n", 2*(n-2)); 26 } 27 int main() { 28 while (~scanf("%d", &n)) 29 work(); 30 return 0; 31 }

?

轉載于:https://www.cnblogs.com/NaVi-Awson/p/7553606.html

總結

以上是生活随笔為你收集整理的[测试题]打地鼠的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。