poj1019_Number_Sequence
这题目关键是打表,haha[k]数组表示的是S1S2..Sk该串结尾所在的位置。然后用n去找n所在的k值,此时haha[k-1]<n<=haha[k]。然后再算出从haha[k]位置到n一共有多少位,再查出来就行了。
本来我要用打表+二分的想法,不过后来二分写的不太好一看可以直接遍历就遍历,limit=3万多,直接遍历也行!有时间把这个二分好好的重写一下。
一点没看题解,做出来挺开心的!
1-9 的长度 = 9
1-99 的长度 = 189
1-999 的长度 = 2889
1-9999的长度 = 38889
31268是事先计算好的,haha[31268]时候正好大于临界值。
#include <stdio.h>
#define limit 31268
long long haha[];
void init(){
int cnt=,i;
int t;
haha[]=;
for(i=;i<=;++i){
haha[i]=haha[i-];
if(cnt>=){
haha[i]+=(cnt-+)*+;
}
else if(cnt>=){
haha[i]+=(cnt-+)*+;
}else if(cnt>=){
haha[i]+=(cnt-+)*+;
}else if(cnt>=){
haha[i]+=(cnt-+)*+;
}else if(cnt>){
haha[i]+=*cnt;
}
cnt++;
if(haha[i]>){
break;
}
}
return ;
}
int main(){
int t,ii,i,l,r,mid;
int n;
int pos;
int cnt;
int tmp;
int res;
init();
while(~scanf("%d",&t)){
while(t--){
scanf("%d",&n);
/*
l=0;
r=limit;
mid=(r+l)/2;
while(haha[r]>=n&&n>=haha[l]){
printf("l=%d,r=%d,haha[l]=%lld,haha[r]=%lld\n",l,r,haha[l],haha[r]);
if(n<haha[mid]){
r=mid;
}else if(n>haha[mid])
l=mid;
else break;
mid=(r+l)/2;
}
pos=mid;
*/
for(i=;i<=limit;++i){
if(haha[i]>=n)
break;
}
pos=i;
cnt=;
res=-;
// printf("n=%d,pos=%d,haha[pos]=%lld\n",n,pos,haha[pos]);
if(n-(int)haha[pos]<){
n=(int)haha[pos]-n;
n++;
for(i=pos;i>=;--i){
int ii=i;
while(ii>){
tmp=ii%;
ii=ii/;
cnt++;
if(cnt==n){
res=tmp;
break;
}
}
if(res!=-) break;
}
printf("%d\n",res);
}else if(n-(int)haha[pos]==){
printf("%d\n",pos%);
}
}
}
return ;
}
poj1019_Number_Sequence的更多相关文章
随机推荐
- centos利用cloudflare的bpf-tools实现ddos防护
概念 利用BPF( Berkeley Packet Filter)工具集结合iptables的xt_bpf模块可以实现高性能包过滤,从而应对大规模的ddos攻击.BPF Tools包含一组简单的pyt ...
- 图片_ _Android有效解决加载大图片时内存溢出的问题 2
Android有效解决加载大图片时内存溢出的问题 博客分类: Android Android游戏虚拟机算法JNI 尽量不要使用setImageBitmap或 setImageResource或 Bit ...
- highstock实现股票分时
highchart学习网站 www.highcharts.com http://www.hcharts.cn/docs/index.php http://www.hcharts.cn/api/high ...
- MethodNotAllowedHttpException
原因:1.没有加表单{{csrf_field()}}:2.除get提交以外,其它提交方式都要csrf_token();3.提交的路由非法,没有定义.
- vacabulary1
The hard hat is rigid,so nothing will hurt my head. glue 胶水vegetarian 素食者: 素食主义者:素食的 North Korea 朝鲜S ...
- jquery validate.addMethod 正则表达式
$(document).ready(function () { /* 设置默认属性 */ $.validator.setDefaults( { submitHandler: function (for ...
- java异常处理机制throws
throws可以在方法声明时抛出的异常.原则上throws声明的异常,一定要在该方法中抛出,否则没有意义. 相反的,若方法中我们主动通过throw抛出一个异常,应该在throws中声明该种类异常,通知 ...
- SQLite打开提示database disk image is malformed
SQLite打开提示database disk image is malformed 网上说产生这种错误的原因有很多种,磁盘空间不足,还有就是写入数据过程中突然掉电等. 这种情况,如果数据还可以导出, ...
- PL/SQL Developer使用技巧、快捷键
1.类SQL PLUS窗口:File->New->Command Window,这个类似于oracle的客户端工具sql plus,但比它好用多了. 2.设置关键字自动大写:Tools-& ...
- OC基础(7)
封装 继承基本概念 继承相关特性 多态基本概念 多态的实现 *:first-child { margin-top: 0 !important; } body > *:last-child { m ...