Question:http://poj.org/problem?id=1019
问题点:打表。
 Memory: 392K        Time: 16MS
Language: C++ Result: Accepted #include <iostream>
#include <cmath>
using namespace std; #define uint unsigned int
uint table[];
uint a[] = {,,,,,};//(1-10^k)/(1-10)的对应结果
uint b[] = {,,,,,};//[1...j]中位数变动边界值。如9 10,从个位到十位时记录9的偏移量
int getLen(int n)
{
if(n<) return ;
else if(n<) return ;
else if(n<) return ;
else if(n<) return ;
else return ;
}
int main()
{
uint i=,seg;
memset(table,,sizeof(table));
for(i = ,seg = ;i<;i++)//打表
{
seg += getLen(i);
table[i] = table[i-] + seg;
}
uint eg,num,j,k,bit;
cin>>eg;
while(eg--)
{
cin>>num;
//if(num==0) break;
for(j=;j<i&&num>table[j];j++);//对应段[1...j]的最大数j
num -= table[j-];//num在[1...j]中的偏移量
for(k=;num>b[k];k++);//num所在数字有几位:如 num偏移为12,所在数字为11,长度k=2
//下面的两个公式简单说明一下:
//如 j=101:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 100 101
//当所在数字(同上面注释里的所在数字)n=19时,偏移量 offset = 19 + (19-9) ,即个位数字数 + 十位数字数
//所以,当n的长度为k时,offset = n + (n-9) +(n-99) +...+(n-(k-1个9)) =k(n+1) -(1+10+100+...+10^(k-1))=k(n+1)-(1-10^k)/(1-10)
//(1-10^k)/(1-10)已存到数组a中,则offset = k(n+1) - a[k],下面两个公式都是依此推导
bit = (num + a[k] - k - )%k;//计算num在 所在数字的位置 :如num为13指向所在数字12的十位,则bit=0(bit从数字高位到低位递增)
num = (ceil(double(num + a[k])/k-));//计算num的所在数字的值
char buf[];
sprintf_s(buf,"%d",num);
cout<<buf[bit]<<endl;//数字转字符串,输出指定位置字符
}
//system("pause");
return ;
}

北大ACM(POJ1019-Number Sequence)的更多相关文章

  1. POJ1019——Number Sequence(大数处理)

    Number Sequence DescriptionA single positive integer i is given. Write a program to find the digit l ...

  2. POJ1019 Number Sequence

    Number Sequence Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 36256   Accepted: 10461 ...

  3. ACM—Number Sequence(HDOJ1005)

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1005 主要内容: A number sequence is defined as follows: f ...

  4. 杭电ACM刷题(2):1005,Number Sequence 标签: 杭电acmC语言 2017-05-11 22:43 116人阅读

    Problem Description A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1 ...

  5. ACM学习历程——HDU 5014 Number Sequence (贪心)(2014西安网赛)

    Description There is a special number sequence which has n+1 integers. For each number in sequence, ...

  6. 北大 ACM 分类 汇总

    1.搜索 //回溯 2.DP(动态规划) 3.贪心 北大ACM题分类2009-01-27 1 4.图论 //Dijkstra.最小生成树.网络流 5.数论 //解模线性方程 6.计算几何 //凸壳.同 ...

  7. [2011山东ACM省赛] Sequence (动态规划)

    Sequence Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 Given an integer number sequence ...

  8. 1005 Number Sequence(HDU)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1005 Number Sequence Time Limit: 2000/1000 MS (Java/O ...

  9. HDU 1005 Number Sequence【多解,暴力打表,鸽巢原理】

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

  10. HDU 1711 Number Sequence(KMP裸题,板子题,有坑点)

    Number Sequence Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

随机推荐

  1. centos 命令行中 * 和 . 的区别

    錯誤    cp /home/test1/* /home/test2/ –a          用參數*將不可以複製linux中.開頭的隱藏文件 正確    cp /home/test1/. home ...

  2. 杭电 3555 Bomb

    Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Subm ...

  3. 任务调度(三)——Timer的替代品ScheduledExecutorService简单介绍

    先前的两篇博文<任务调度(一)--jdk自带的Timer>和<任务调度(二)--jdk自带的Timer 动态改动任务运行计划>中,简介了一下Timer,能够实现几本的功能.可是 ...

  4. socket简单理解

    要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,定义了主 ...

  5. (十)Net Core项目使用Cookies (八)Net Core项目使用Controller之三-入参

    (十)Net Core项目使用Cookies 一.简介 1.Net Core可以直接使用Cookies,但是调用方式有些区别. 2.Net Core将Request和Response分开实现. 二.基 ...

  6. 我是怎样自学 Android 的?

    1. Java知识储备 本知识点不做重点解说: 对于有基础的同学推荐看<Java编程思想>,巩固基础,查漏补全,了解并熟悉很多其它细节知识点. 对于没有基础的同学推荐看一本Java基础的书 ...

  7. react-color 颜色选择器组件

    demo链接:github demo 安装: npm install react-color --save 有一下几种类型组件 <AlphaPicker /> <BlockPicke ...

  8. ps图片怎样实现渐变

    首先我先将一副图片展示给大家: 我所做的效果是想把图片做成渐变.而不改变中间图片的颜色效果. 接下来我来说明一下我的所做思路. 首先将图片中间部分选择出来.然后复制成一个图层. 详细操作是用魔棒进行反 ...

  9. gitlab的安装和配置

    1 使用omnibus gitlab来安装gitlab 也就是说,将gitlab和它所需要的组件打一个包,即打一个bundle进行安装. 第一步,安装gitlab的源. curl https://pa ...

  10. mouse_event function

    https://msdn.microsoft.com/en-us/library/windows/desktop/ms646260(v=vs.85).aspx