腾讯笔试:贪吃的小Q

发布时间:2026/7/28 14:30:25
腾讯笔试:贪吃的小Q 时间限制1秒空间限制32768K小Q的父母要出差N天走之前给小Q留下了M块巧克力。小Q决定每天吃的巧克力数量不少于前一天吃的一半但是他又不想在父母回来之前的某一天没有巧克力吃请问他第一天最多能吃多少块巧克力输入描述:每个输入包含一个测试用例。 每个测试用例的第一行包含两个正整数表示父母出差的天数N(N50000)和巧克力的数量M(NM100000)。输出描述:输出一个数表示小Q第一天最多能吃多少块巧克力。输入例子1:3 7输出例子1:4#include map #include cmath #include queue #include cstdio #include string #include cstring #include iostream #include algorithm #include sstream #include time.h #include vector #include list #include iostream #includeiomanip #includetime.h #define N_MAX 205 #define INF (0x3f3f3f3f) using namespace std; int Cal(int first, int N) { int sum first, save first; for (int i 1; i N; i) { if (save % 2 0) save save / 2; else save save / 2 1; sum save; } //cout sum endl; return sum; } int judge(int num) { int i 1, save num; while (save pow(2, i) - 1) { save; i; } //cout i - 1 endl; return i - 1; } int main() { int N, M; cin N M; int sum 0, i 0; int Max M - N 1; int k judge(Max); if(k N) Max pow(2, k); else Max pow(2, k 1); for (i Max; i 0; i--) { int res Cal(i, N); if (res M) { cout i; break; } } return 0; }