社区讨论
std 这一行啥意思
AT_arc123_c [ARC123C] 1, 2, 3 - Decomposition参与者 7已保存回复 9
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 9 条
- 当前快照
- 1 份
- 快照标识符
- @lo3gddtd
- 此快照首次捕获于
- 2023/10/24 06:11 2 年前
- 此快照最后确认于
- 2023/10/24 06:11 2 年前
CPP
#include<iostream>
#include<unordered_map>
using namespace std;
using ll = long long;
int solve(ll N){
unordered_map<ll, int> memo;
auto f = [&](auto self, ll N) -> int {//这一行。
if(N==0) return 0;
if(memo.count(N)) return memo[N];
ll n = N / 10, r = N % 10;
int res = 0;
if(1 <= r && r <= 3 && self(self, n) <= 1) res = 1;
else if(2 <= r && r <= 6 && self(self, n) <= 2) res = 2;
else if(3 <= r && r <= 9 && self(self, n) <= 3) res = 3;
else if(4 <= r && r <= 9 && self(self, n) <= 4) res = 4;
else if(0 <= r && r <= 2 && self(self, n - 1) <= 4) res = 4;
else res = 5;
memo[N] = res;
return res;
};
return f(f, N);
}
int main(){
int T; cin >> T;
for(int t=0; t<T; ++t){
ll N; cin >> N;
cout << solve(N) << endl;
}
}
回复
共 9 条回复,欢迎继续交流。
正在加载回复...