poj-2514-模拟
http://poj.org/problem?id=2514
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 1954 | Accepted: 412 |
Description
The first digit of the result is 2, the second digit is 7, and the third is 2 and so on. Given an integer k, you should output the digit at position k in the resulting number.
Input
A line containing a number "0" terminates input, and this line need not be processed.
Output
Sample Input
2
5
30
0
Sample Output
7
1
8
Source
#include<iostream>
#include<cstring>
#include<cstdio>
#include<vector>
#include<cmath>
using namespace std;
#define LL long long
vector<LL>g[];
LL a[],b[];
LL max_int=;
void init()
{
g[].push_back();
g[].push_back();
LL x=,y=;
for(int i=; i<=; ++i,x=x*+,y*=)
{
g[].push_back(x);
g[].push_back((LL)(sqrt(y)-0.00001));
}
LL o=;
for(int i=; i<=; ++i,o*=)
{
a[i]=a[i-]+i*(o-o/);
}
for(LL i=; i<=; ++i)
{
b[i]=b[i-]+i*(g[][i]-g[][i-]);
}
}
int getl(LL n)
{
int ans=;
while(n) ans++,n/=;
return ans;
}
int get_a(LL n)
{
LL l=,r=;
while(l<r)
{
LL mid=l+(r-l)/;
LL len=getl(mid);
LL s=a[len-]+(len*(mid-g[][len-]));
if(s>n)
{
r=mid;
}
else if(s<n)
{
l=mid+;
}
else
{
return mid%;
}
}
LL len=getl(l);
LL s=a[len-]+(len*(l-g[][len-]));
while(s>n) s--,l/=;
return l%;
} int get_b(LL n)
{
LL l=,r=;
while(l<r)
{
LL mid=l+(r-l)/;
LL len=getl(mid*mid);
LL s=b[len-]+(len*(mid-g[][len-]));
if(s>n)
{
r=mid;
}
else if(s<n)
{
l=mid+;
}
else
{
return mid*mid%;
}
}
LL len=getl(l*l);
LL s=b[len-]+(len*(l-g[][len-]));
l=l*l;
while(s>n) s--,l/=;
return l%;
} int main()
{
LL n;
init();
while(scanf("%lld",&n)!=EOF)
{
if(!n) break;
LL a=get_a(n),b=get_b(n),
c=get_a(n+),d=get_b(n+),jin=;
while(c+d>)
{
if(c+d>)
{
jin=;
break;
}
n++;
c=get_a(n+);
d=get_b(n+);
}
cout<<(a+b+jin)%<<endl;
}
return ;
}
poj-2514-模拟的更多相关文章
- POJ 1016 模拟字符串
Numbers That Count Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 20396 Accepted: 68 ...
- POJ 1208 模拟
2017-08-28 15:07:16 writer:pprp 好开心,这道题本来在集训的时候做了很长很长时间,但是还是没有做出来,但是这次的话,只花了两个小时就做出来了 好开心,这次采用的是仔细分析 ...
- POJ - 3087 模拟 [kuangbin带你飞]专题一
模拟洗牌的过程,合并两堆拍的方式:使先取s2,再取s1:分离成两堆的方式:下面C张放到s1,上面C张到s2.当前牌型与第一次相同时,说明不能搜索到答案. AC代码 #include<cstdio ...
- Shuffle'm Up POJ - 3087(模拟)
Shuffle'm Up Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 15249 Accepted: 6962 Des ...
- poj 1379 模拟退火法
/* 模拟退火法: 找到一些随机点,从这些点出发,随机的方向坐标向外搜索: 最后找到这些随机点的最大值: 坑://if(xx>-eps&&xx<x+eps&& ...
- POJ 1471 模拟?
题意:求最大无坏点三角形 思路: 模拟? (为什么我模拟过了...) 有人用 DP,有人用 搜索... // by SiriusRen #include <cstdio> #include ...
- POJ 1951 模拟
思路: 坑爹模拟毁我一生 给两组数据: 输入: YOURE TRAVELING THROUGH ANOTHER DIMENSION A DIMENSION NOT OF SIGHT. 输出: YR T ...
- POJ 2141 模拟
思路:字符串解密 啥都告诉你了 模拟就好 //By SiriusRen #include <cstdio> #include <cstring> using namespace ...
- POJ 2459 模拟
题意: 思路: 按照题意模拟即可 //By SiriusRen #include <cstdio> using namespace std; int c,f1,f2,d,xx,yy,vis ...
- poj 1068 模拟
题目链接 大概题意就是告诉你有个n个小括号,每一个")"左边有多少个"("都告诉你了,然后让你求出每一对括号之间有多少对括号(包含自己本身). 思路: 我先计算 ...
随机推荐
- 在GeoServer里设置图层的默认自定义样式,出现不显示预览图的情况(不起作用)
在GeoServer里设置图层的默认自定义样式 点击"Layers-->world:country"图层,点击"Publishing"标签,在下面的&qu ...
- linux服务器安装brook服务端 使用brook客户端
既然你已经找到了此文章,说明已经知道brook的用途了,不做介绍,下面讲安装方法: 连接服务器,随便cd一个安装目录,例如: mkdir brook && cd brook 2.进re ...
- sticky-footer的三种解决方案
在网页设计中,Sticky footers设计是最古老和最常见的效果之一,大多数人都曾经经历过.它可以概括如下:如果页面内容不够长的时候,页脚块粘贴在视窗底部:如果内容足够长时,页脚块会被内容向下推送 ...
- 蚂蚁金服×西安银行 | 西安银行手机银行App的智能升级之路
小蚂蚁说: 当前,数字化信号已经逐渐深入到社会的每个角落,影响着用户的心智和行为,来到数字化时代门口的银行,需要注意到数字化信号.西安银行通过引入蚂蚁金服移动开发平台mPaaS,对手机银行进行架构升级 ...
- P3146 [USACO16OPEN]248 & P3147 [USACO16OPEN]262144
注:两道题目题意是一样的,但是数据范围不同,一个为弱化版,另一个为强化版. P3146传送门(弱化版) 思路: 区间动规,设 f [ i ][ j ] 表示在区间 i ~ j 中获得的最大值,与普通区 ...
- sessionId的生成机制
目录 面试问道这个我居然不知道怎么回答,当然也是因为我确实没有研究过.下面就是百度了一篇文章后简单回答这个问题. 参考:http://www.cnblogs.com/sharpxiajun/p/339 ...
- Python pymysql 增删改查封装
关于pymysql 的增删改查,简单做个封装,方便后面使用直接拿来调用即可. 其中 增删改 的处理其实是一致的,本可以使用统一的方法,但是为了明显区分,这里分开来写了. 直接看代码就即可,如下: # ...
- Fiddler 简单介绍
fiddler 也已经使用了几年了,前面做免登录时就是用了fiddler,为了抓取cookie等信息.但是一直没有对他进行整理出一篇文章来介绍其使用. Fiddler的基本介绍 Fiddler的官方网 ...
- HTML第五章总结
A Chapter for <img> 前言 这一章讲了 Web 图片 format 的各自的优缺点和elements of 's attributes. Section1:Q1:How ...
- 雷林鹏分享:XML 编码
XML 编码 XML 文档可以包含非 ASCII 字符,比如挪威语 æ ø å,或者法语 ê è é. 为了避免错误,需要规定 XML 编码,或者将 XML 文件存为 Unicode. XML 编码错 ...