文章
2
粉丝
134
获赞
9
访问
11.6k
 
先看数据范围 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;
   ...
    
登录后发布评论
暂无评论,来抢沙发