A-小苹果
额题意非常简单易懂,就是说有n个苹果隔2拿1,问你多少天能拿完,第n个第几天能拿完力(签到题,狂喜),注意n≤1e9,所以说用纯模拟10000%超时(bushi)
所以我们要用伟大的log复杂度(?)思路非常的简单,就是说剩余苹果>3时他每次拿都会拿掉原来滴1/3所以蒟蒻的拿掉就非常快乐滴过了~ (100分稳稳拿到手~)
必须要写的大大滴tips:向上取整!向上取整!向上取整!
开门放代码(?):
#include <bits/stdc++.h>
using namespace std;
int n, ans1, ans2 = -1;
int main()
{
cin >> n;
while(n > 0)
{
if(n <= 3)
{
n --;
ans1 ++;
}
else
{
if(n % 3 == 0)
{
n -= n / 3;
}
else
{
n -= 1 + n / 3;
if(n - 1 % 3 == 0)
{
ans2 = ans1;
}
ans1 ++;
}
}
if(ans2 == -1)
{
ans2 = ans1;
}
cout << ans1 << " " << ans2 << endl;
}
未完待续……