hdu 1597 防忘
来源:互联网 发布:zbrush mac 百度云 编辑:程序博客网 时间:2024/06/04 18:59
find the nth digit
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11979 Accepted Submission(s): 3612
Problem Description
假设:
S1 = 1
S2 = 12
S3 = 123
S4 = 1234
.........
S9 = 123456789
S10 = 1234567891
S11 = 12345678912
............
S18 = 123456789123456789
..................
现在我们把所有的串连接起来
S = 1121231234.......123456789123456789112345678912.........
那么你能告诉我在S串中的第N个数字是多少吗?
S1 = 1
S2 = 12
S3 = 123
S4 = 1234
.........
S9 = 123456789
S10 = 1234567891
S11 = 12345678912
............
S18 = 123456789123456789
..................
现在我们把所有的串连接起来
S = 1121231234.......123456789123456789112345678912.........
那么你能告诉我在S串中的第N个数字是多少吗?
Input
输入首先是一个数字K,代表有K次询问。
接下来的K行每行有一个整数N(1 <= N < 2^31)。
接下来的K行每行有一个整数N(1 <= N < 2^31)。
Output
对于每个N,输出S中第N个对应的数字.
Sample Input
61234510
Sample Output
112124
#include<iostream>#include <cstring>#include <algorithm>#include <stdio.h>#include <cmath>using namespace std;long long d[70001];int main(){ long long s=0; for(int i=1;i<=70000;i++) //求出字串的长度 { s+=i; d[i]=s; } int t; cin>>t; while(t--) { int n; cin>>n; long long l=1,h=70000,mid; while(l<=h) //找到哪一组 { mid=(l+h)/2; if(d[mid]>n) h=mid-1; else if(d[mid]<n) l=mid+1; else { l=mid; break; } } n=n-d[l-1]; n=n%9; if(n==0) cout<<"9"<<endl; else cout<<n<<endl; }}
0 0
- hdu 1597 防忘
- hdu 4939 三色塔防
- HDU 4939 一个塔防游戏
- 记录一些东西防忘
- 杭电2899 防忘
- C51_LCD1602显示(防忘)
- Windows Socket 代码贴着防忘
- PyQt学习笔记--备注防忘(一)
- 虚拟机ping通外网过程防忘
- 最长不降子序列(防忘)
- 2014多校1011--hdu--4097--Killing Monsters(塔防,线段树超时。。)
- 文档防泄密,防拷贝,防打印
- 关于字符串string的知识记录 = = 防忘
- 塔防
- 防搜索
- 防注入
- 防注入
- 防注入
- 二叉树的创建、层次遍历、递归遍历、非递归遍历
- 赫夫曼编码
- hdu1049
- 每日一练-----简单的计算器
- onSaveInstanceState
- hdu 1597 防忘
- 预定义符号
- Ubuntu下安装软件方法总结
- Huffman
- 七张图全面了解大数据生态圈
- XML解析-Dom4j的DOM解析方式更新XML
- CCF-订票系统
- OC 版HTMLPurifieri 使用
- hdu 5955 Guessing the Dice Roll 概率DP,ac自动机,高斯消元 ★★