文章
2
粉丝
134
获赞
0
访问
10.4k
先看数据范围 3e8
好的数组下标记录true false 被排除了
那就是把数放数组里呗(很明显是要存起来的,因为查询多次)
放数组里,,,那怎么推呢?可以看出他可以又之前有的推导过来
简而言之,比如你知道了 21 那你就可以通过加一个 2或者加一个0得到212 210
利用一个队列
然后在搜索下标就行了
复杂度应该是O(nlogn)---->lower_bound
```
// // Created by Arc on 2022/3/30. // #include <iostream> #include<stdio.h> #include <vector> #include <map> #include <unordered_set> #include <unordered_map> #include<queue> #include <set> using namespace std; const long long INTN=30800000000; int main(){ long long num; cin>>num; vector<long long> dp={10,12,21,23,32,34,43,45,54,56,65,67,76,78,87,89,98}; queue<long long> q; for(int i=0;i<17;i++){ q.push(dp[i]); } while(!q.empty() ){ long long x=q.front(); // cout<<"x"<<x<<endl; if(x>INTN) break; q.pop(); int last=x%10; ...
登录后发布评论
暂无评论,来抢沙发