賣萌型選手

2021-09-06 15:16:38 字數 1346 閱讀 9204

雞尾酒在一場cf的div2比賽中被血虐,一道簡單大模擬竟然乙個半小時都沒ac,認清自己的實力之後他選擇做一名賣萌型選手。有一天雞尾酒遇到了乙個炒雞喜歡的小姐姐,喜歡就要行動,藏著掖著是沒有結果的!所以他決定通過自己最擅長的方式——賣萌,來獲得小姐姐的芳心。

赤耳對雞尾酒說:我也會嚶嚶嚶可是還是單身,賣萌不一定有用吧?

雞尾酒說:沒有賣萌解決不了的問題,如果有,那說明你表現的還不夠萌!而且賣萌不是光在鍵盤上嚶嚶嚶qaq,而是要有自己的特色。一般人賣萌都會使自己的可愛度增加乙個普通數字,但是我的賣萌更立體,所以我每次能讓自己的可愛度增加乙個平方數!

初始雞尾酒的可愛度為0,他每一次賣萌都會使可愛度增加i2。初始i=1,每次賣萌之後雞尾酒都會對賣萌有新的理解,能得到的可愛度就會更多,所以每次賣萌之後i=i+1(第二次增加22,第三次32……)

在數次賣萌之後,如果雞尾酒的總可愛度不大於k,則小姐姐對雞尾酒的好感度等於雞尾酒的可愛度。

但是如果雞尾酒的可愛度超過k,小姐姐則會認為雞尾酒是乙個只會賣萌的軟蛋,好感度變為-1。

雞尾酒想請你幫他算算,他最多能獲得小姐姐的好感度是多少。

輸入第一行包含乙個整數t(t<=200000),表示t組測試資料,

每組資料報含乙個整數k(0<=k<=1018),代表小姐姐的忍耐上限

輸出t行,每行包含乙個整數

代表雞尾酒能達到的最高好感度。

示例1

313

9

1

15

解題思路:雖然題意很簡單,就是求離n最近的平方和,但是直接求解還是會有超時的問題,所以我選擇了打表

將平方和的值用陣列存起來,再找到比n大的前乙個數即可,但是我們寫完會發現,當打完錶後再for

遍歷也會超時,所以使用二分查詢來求解

**如下:

#include#include#include#includeusing namespace std;

long long int num[1500000];

int main()

long long int n;

scanf("%lld",&n);

while(n--)

long long int l = 0;

long long int r = 1442252;

long long int ans;

while(l + 1 < r)

else if(num[mid] < k)

else

}if(k == num[ans])

printf("%lld\n",num[ans]);

else

} return 0;

}

賣萌型選手

時間限制 c c 1秒,其他語言2秒 空間限制 c c 131072k,其他語言262144k 64bit io format lld 雞尾酒在一場cf的div2比賽中被血虐,一道簡單大模擬竟然乙個半小時都沒ac,認清自己的實力之後他選擇做一名賣萌型選手。有一天雞尾酒遇到了乙個炒雞喜歡的小姐姐,喜歡...

PAT 乙級 1052 賣個萌

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 萌萌噠表情符號通常由 手 眼 口 三個主要部分組成。簡單起見,我們假設乙個表情符號是按下列格式輸出的 左手 左眼 口 右眼 右手 現給出可選用的符號集合,請你按使用者的要...

PAT乙級 1052 賣個萌

萌萌噠表情符號通常由 手 眼 口 三個主要部分組成。簡單起見,我們假設乙個表情符號是按下列格式輸出的 左手 左眼 口 右眼 右手 現給出可選用的符號集合,請你按使用者的要求輸出表情。輸入首先在前三行順序對應給出手 眼 口的可選符號集。每個符號括在一對方括號內。題目保證每個集合都至少有乙個符號,並不超...