https://vjudge.net/problem/POJ-1019

题意

给一串1 12 123 1234 12345 123456 1234567 12345678 123456789 12345678910 1234567891011这种形式的串,问这个串的第i个位置的数字是什么。

分析

这道题的重点在于到第k组时应该为几位数,即对于某个数x,它应该为几位数。答案是log10(x)+1。这样剩下的便是打表预处理了,找出每组的起始位置,再处理出一个最长的组。

  1. #include<iostream>
  2. #include<cmath>
  3. #include<cstring>
  4. #include<queue>
  5. #include<vector>
  6. #include<cstdio>
  7. #include<algorithm>
  8. #include<map>
  9. #include<set>
  10. #define rep(i,e) for(int i=0;i<(e);i++)
  11. #define rep1(i,e) for(int i=1;i<=(e);i++)
  12. #define repx(i,x,e) for(int i=(x);i<=(e);i++)
  13. #define X first
  14. #define Y second
  15. #define PB push_back
  16. #define MP make_pair
  17. #define mset(var,val) memset(var,val,sizeof(var))
  18. #define scd(a) scanf("%d",&a)
  19. #define scdd(a,b) scanf("%d%d",&a,&b)
  20. #define scddd(a,b,c) scanf("%d%d%d",&a,&b,&c)
  21. #define pd(a) printf("%d\n",a)
  22. #define scl(a) scanf("%lld",&a)
  23. #define scll(a,b) scanf("%lld%lld",&a,&b)
  24. #define sclll(a,b,c) scanf("%lld%lld%lld",&a,&b,&c)
  25. #define IOS ios::sync_with_stdio(false);cin.tie(0)
  26. using namespace std;
  27. typedef long long ll;
  28. template <class T>
  29. void test(T a){cout<<a<<endl;}
  30. template <class T,class T2>
  31. void test(T a,T2 b){cout<<a<<" "<<b<<endl;}
  32. template <class T,class T2,class T3>
  33. void test(T a,T2 b,T3 c){cout<<a<<" "<<b<<" "<<c<<endl;}
  34. const int inf = 0x3f3f3f3f;
  35. const ll INF = 0x3f3f3f3f3f3f3f3fll;
  36. const ll mod = 1e9+;
  37. int T;
  38. void testcase(){
  39. printf("Case %d: ",++T);
  40. }
  41. const int MAXN = 5e4+;
  42. const int MAXM = ;
  43. ll sum[MAXN],pos[MAXN];
  44. int bit[MAXN];
  45. int ans[MAXN*];
  46. void init(){
  47. sum[]=,pos[]=;
  48. for(int i=;i<MAXN;i++){
  49. sum[i]=sum[i-]+log10(1.0*i)+;
  50. pos[i]=pos[i-]+sum[i-];
  51. }
  52. int cnt=;
  53. for(int i=;i<MAXN;i++){
  54. int tmp=i;
  55. int tot=;
  56. while(tmp){
  57. bit[++tot]=tmp%;
  58. tmp/=;
  59. }
  60. while(tot){
  61. ans[cnt++]=bit[tot--];
  62. }
  63. }
  64. }
  65. int main() {
  66. #ifdef LOCAL
  67. freopen("in.txt","r",stdin);
  68. #endif // LOCAL
  69. int t;
  70. ll x;
  71. scd(t);
  72. init();
  73. while(t--){
  74. cin>>x;
  75. int i;
  76. for(i=;i<MAXN;i++){
  77. if(pos[i]>x) break;
  78. }
  79. cout<<ans[x-pos[i-]+];
  80. if(t) puts("");
  81. }
  82. return ;
  83. }

POJ - 1019 Number Sequence (思维)的更多相关文章

  1. Poj 1019 Number Sequence( 数据分析和操作)

    一.题目大意 有这样一个序列包含S1,S2,S3...SK,每一个Si包括整数1到 i.求在这个序列中给定的整数n为下标的数. 例如,前80位为1121231234123451234561234567 ...

  2. poj 1019 Number Sequence 【组合数学+数字x的位宽函数】

    题目地址:http://poj.org/problem?id=1019 Number Sequence Time Limit: 1000MS   Memory Limit: 10000K Total ...

  3. POJ 1019 Number Sequence

    找规律,先找属于第几个循环,再找属于第几个数的第几位...... Number Sequence Time Limit: 1000MS Memory Limit: 10000K Total Submi ...

  4. POJ 1019 Number Sequence 解读

    这是一个看似简单,其实很难受. 本来我想发挥它的标题轨道基础.没想到反被消遣-_-|||. 看它在个人基础上,良好的数学就干脆点,但由于过于频繁,需求将被纳入全,因此,应该难度4星以上. 方法就是直接 ...

  5. PKU 1019 Number Sequence(模拟,思维)

    题目 以下思路参考自discuss:http://poj.org/showmessage?message_id=176353 /*我的思路: 1.将长串数分成一个个部分,每个部分是从1到x的无重复的数 ...

  6. POJ 1019:Number Sequence 二分查找

    Number Sequence Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 36013   Accepted: 10409 ...

  7. HDU 1005 Number Sequence

    Number Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  8. hdu 1005:Number Sequence(水题)

    Number Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  9. hdu1005 Number Sequence(寻找循环节)

    主题链接: pid=1005">huangjing 题意: 就是给了一个公式,然后求出第n项是多少... 思路: 题目中n的范围实在是太大,所以肯定直接递推肯定会超时,所以想到的是暴力 ...

随机推荐

  1. docker 构建dockerfile

    版本为: 使用cenotos 7 docker  版本 [root@zhao ~]# docker --versionDocker version 17.03.1-ce, build c6d412e ...

  2. React 表单refs

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...

  3. WebService概述

    一.WebService介绍 什么是WebService? 一言以蔽之:WebService是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓跨编程语言和跨操作平台,就是说服务端程序采用java编 ...

  4. YII2十三大特性2

    第十三 场景(scenario)的使用 例如:有三个场景,分别为创建,更新,确认回款 首先,定义所有的场景,及规则,如下所示: <?php namespace core\models; use ...

  5. python的数据相关框架

    ipython 多种编程语言之间进行交互计算的命令行shell graphlab greate 快速构建大型高性能数据产品 pandas 数据分析 pulp 线性编程模型 matplotlib sci ...

  6. Jenkins-Multijob plugin多任务串并行

    由于项目采用分布式服务架构,后端拆分为对外提供接口的接口层和对内提供服务的服务层,而服务层项目A又引用项目B和C服务,这时发布时就要求先发布A,再发布B和C,最后再发布接口项目. 经过一番查找,找到了 ...

  7. day5 列表

    列表 查 索引(下标),默认从0开始 切片 .count 查某个元素的出现次数 .index 根据内容找元素的对应索引位置 增加 .append() 追加在最后 .insert(index,'内容') ...

  8. vs2017 C4996 错误

    严重性    代码    说明    项目    文件    行    禁止显示状态错误    C4996    'strcpy': This function or variable may be ...

  9. Inside JVM 内存模型

    Inside JVM 内存模型 来源  原文:https://blog.csdn.net/silentbalanceyh/article/details/4661230 参考:IBM开发中心文档,&l ...

  10. Migrate Maven Projects to Java 11

    Migrate Maven Projects to Java 11 So you want to migrate to Java 11 but your Maven project is still ...