POJ 2081 JAVA
来源:互联网 发布:阿里云客服工作台 编辑:程序博客网 时间:2024/05/21 19:49
http://poj.org/problem?id=2081
一个序列问题,为了时间效率,最好的方法是先计算出整个序列,这种时间复杂度其实只有O(1),然而如果对于每个输入分别计算,其实根本算法上并没有差别。
布尔数组开个400W就够了,因为最大值是3012500,表示结果的数组其实没必要开这么大。
话说用平衡树会快一点吗?
JAVA 代码如下
import java.util.Scanner;
public class Recaman_Sequence2 {
static boolean b[];
static int a[];
static int k,res;
// static int max=0;
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
b=new boolean[5000000];//max:3012500
a=new int[5000000];
a[0]=0;
R(0);
while(-1!=(k=Integer.parseInt(sc.nextLine()))){
System.out.println(a[k]);
}
}
private static void R(int start) {
for(int i=1;i<=500000;i++){
if(a[i-1]-i>0&&!b[a[i-1]-i]){
b[a[i-1]-i]=true;
a[i]=a[i-1]-i;
}else{
b[a[i-1]+i]=true;
a[i]=a[i-1]+i;
}
// max=a[i]>max?a[i]:max;
}
}
}
- POJ 2081 JAVA
- POJ 2418 Java
- POJ 2299 Java
- POJ 1011 - Java
- poj 1032 java版本
- poj 2389 Java
- poj 1002 Java
- poj 1003 Java
- poj 1004 Java
- poj 1005 Java
- poj 1007 Java
- poj 1008 Java
- poj 3274 java
- poj 2706 java
- poj 3308 java
- poj 2195 java
- poj 2528 java
- poj 2482 java
- asp.net 后台按钮事件弹出新页而不被阻止
- 安卓应用运营基础知识—签名
- 机智的末位无空格
- EditText 如何定义光标的位置
- loadrunner简介
- POJ 2081 JAVA
- linux中,如何清除环境中已经分区的磁盘,并格式化数据,不重启系统
- loadrunner自学笔记-性能测试的注意要点
- 关于AD15铺铜的注意事项
- 关于Android内存泄露问题
- 自定义dialog布局
- mysql基础教程(4)---函数
- WPF textBox中简单处理文字滚动显示问题,另外用代码去边框
- 安卓自动获取验证码(忘记密码为例)