안녕하세요. 오늘은 압축을 할 거예요.
https://www.acmicpc.net/problem/5043
길이가 최대 2비트인 값들은 무엇이 있을까요?
"", "0","1","01","10","00","11"이 있습니다. 총 7개지요.
최대 3개, 4개를 해보면 알 수 있습니다. 비트가 최대 n개일때 값들의 개수는 최대 2^0+2^1+2^2+...+2^n이고 이 값은 2^(n+1)-1이라는 사실이라는것입니다.
#include <iostream>
#define ll long long
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
ll N, b, i, mul = 1;
cin >> N >> b;
for (i = 1; i <= b + 1; i++) mul *= 2;
mul--;
if (N <= mul) cout << "yes";
else cout << "no";
}
감사합니다.