zoukankan      html  css  js  c++  java
  • C++-POJ1019-Number Sequence

    题意:

      求数字11212312341234512345612345671234567812345678912345678910123456789101112345678910111212345678910111213...的第i位是几?

    数位dp打表+二分+暴力模拟

    0msAC哦!暴力美学!

     1 #include <set>
     2 #include <map>
     3 #include <cmath>
     4 #include <queue>
     5 #include <vector>
     6 #include <cstdio>
     7 #include <cstdlib>
     8 #include <cstring>
     9 #include <iostream>
    10 #include <algorithm>
    11 using namespace std;
    12 int a[31268],f[31268],b[11],i_b;
    13 int digit(int x) {
    14     if(x>999999999)return 10;
    15     if(x>99999999)return 9;
    16     if(x>9999999)return 8;
    17     if(x>999999)return 7;
    18     if(x>99999)return 6;
    19     if(x>9999)return 5;
    20     if(x>999)return 4;
    21     if(x>99)return 3;
    22     if(x>9)return 2;
    23     return 1;
    24 }
    25 int main() {
    26     int i,j,k;
    27     for(i=1; i<=31267; i++) {
    28         for(j=i; j>=1; j--)
    29             if(f[j]) {a[i]+=f[j];break;}
    30             else a[i]+=digit(j);
    31         f[i]=a[i];
    32         a[i]+=a[i-1];
    33     }//a[31267]=2147378477
    34     int T,I;
    35     for(scanf("%d",&T); T--;) {
    36         scanf("%d",&I);
    37         int l=1,r=31267;
    38         while(r-l>1) {
    39             int mid=(l+r)/2;
    40             if(I>a[mid])l=mid;
    41             else if(I==a[mid])l=mid,r=mid;
    42             else r=mid;
    43         }
    44         int cnt=I-a[l],num,ans;
    45         if(!cnt) {cout<<l%10<<endl;continue;}
    46         for(i=l+1; cnt; i++)
    47             for(j=1; j<=i && cnt; j++) 
    48                 for(num=j,ans=0,k=j; k && cnt; k/=10,cnt--,ans++);
    49         for(i_b=0,k=num; k ; b[++i_b]=k%10,k/=10);
    50         cout<<b[i_b-ans+1]<<endl;
    51     }
    52     return 0;
    53 }
    ~~Jason_liu O(∩_∩)O
  • 相关阅读:
    rn相关文档
    《浅谈我眼中的express、koa和koa2》好文留存+笔记
    (四)Spring 对DAO 的支持
    (三)Spring 之AOP 详解
    (二)Spring 之IOC 详解
    SVN文件上感叹号、加号、问号等图标的原因
    Windows平台下不同版本SVN对比
    eclipse中启动Genymotion模拟器的错误
    (一)问候Spring4
    (十一)Hibernate 高级配置
  • 原文地址:https://www.cnblogs.com/JasonCow/p/12274351.html
Copyright © 2011-2022 走看看