SRM 403 250pt: TheLuckyNumbers

問題概要

[A,B](1

考えたこと

  • なんか最近のDiv1 EasyでTheAlmostLuckyNumbersとかいう問題を見た気がする。それの簡単バージョン。
  • dfsで書いた。本当に書くだけすぎる…。

practiceで通ったコード

計算量O(2 ^ log_10 B)。

typedef long long int64;

void dfs(int64 x, int64 a, int64 b, int& ans){
	if(a <= x && x <= b){
		ans++;
	}
	if(x <= b){
		dfs(10*x + 4, a, b, ans);
		dfs(10*x + 7, a, b, ans);
	}
}

struct TheLuckyNumbers {

	int count(int64 a, int64 b) {
		int ans = 0;
		dfs(0, a, b, ans);
		return ans;
	}

};