本題限用C++11以上版本作答
我是之一,身高 170 左右,是個天才,沒有女朋友(之一沒有說過)。
現在之一心中想著一個數字 $T$ 在 $[1, n]$ 範圍內,你可以給之一 $k$ 個數字,之一會分別回答你那 $k$ 個數字分別是 $\le T$ 還是 $>T$ 。
但之一得了咕嘰病,他只能說咕或嘰。
對於你的一次詢問,之一會先決定咕代表 $>$ 嘰代表 $\le$ 還是嘰代表 $>$ 咕代表 $\le$ ,之後再回答你的問題。
但之一今天心情不太好,對於你的不同次詢問,咕嘰各自代表的意義不見得相同,但同一次詢問兩者的意義不會更動。
之一不會說謊,但今天之一心情不好,你問的問題中的數字一定要在 $[1, n]$ 範圍內,不然之一會生氣,並且你不能問太多問題,一定要以最少詢問次數猜出之一想的數字,不然之一也會生氣。
請猜出之一想的數字是什麼吧!
本題為互動題,請引入"lib4654.h"
請你實作函式int find(int n, int k),請回傳你猜測的答案。
以下是一個你可以使用的函式,用來問之一問題:
vector<string> query(vector<int> v)
之一會回傳一個大小為 $k$ 的vector<string>給你, $k$ 個字串分別對應 $k$ 個數字的回答,回傳的字串只有可能是gii或是goo。
請不要實作int main()函式。
以下是一個不會CE但也不會AC的程式碼:
#include "lib4654.h"
#include<bits/stdc++.h>
using namespace std;
int find(int n, int k)
{
vector<int> w(k);
for(int &i:w)i=1;
vector<string> v=query(w);
return 1;
}
$1 \le n \le 10 ^ 9$
$2 \le k \le 100$
本題沒有輸入
本題沒有輸出
如果你問的問題數量太多或答案錯誤都會拿到一個WA。
owl學互動題
| No. | Testdata Range | Constraints | Score |
|---|---|---|---|
| 1 | 0 | $n=1$ | 2 |
| 2 | 1~20 | $k=2$ | 23 |
| 3 | 21~50 | 無特別限制 | 75 |