杭电ACM2047java做法
2015-08-16 11:36
260 查看
阿牛的EOF牛肉串
Problem Description
今年的ACM暑期集训队一共有18人,分为6支队伍。其中有一个叫做EOF的队伍,由04级的阿牛、XC以及05级的COY组成。在共同的集训生活中,大家建立了深厚的友谊,阿牛准备做点什么来纪念这段激情燃烧的岁月,想了一想,阿牛从家里拿来了一块上等的牛肉干,准备在上面刻下一个长度为n的只由"E" "O" "F"三种字符组成的字符串(可以只有其中一种或两种字符,但绝对不能有其他字符),阿牛同时禁止在串中出现O相邻的情况,他认为,"OO"看起来就像发怒的眼睛,效果不好。
你,NEW ACMer,EOF的崇拜者,能帮阿牛算一下一共有多少种满足要求的不同的字符串吗?
PS: 阿牛还有一个小秘密,就是准备把这个刻有 EOF的牛肉干,作为神秘礼物献给杭电五十周年校庆,可以想象,当校长接过这块牛肉干的时候该有多高兴!这里,请允许我代表杭电的ACMer向阿牛表示感谢!
再次感谢!
Input
输入数据包含多个测试实例,每个测试实例占一行,由一个整数n组成,(0<n<40)。
Output
对于每个测试实例,请输出全部的满足要求的涂法,每个实例的输出占一行。
Sample Input
1
2
Sample Output
3
8
贴上前辈的推导过程
设n位字符串,最后一位是O的字符串的个数为a
,最后一位不是O的字符串的个数是b
,
总字符串个数为x
,
则有
x
=a
+b
;
a
=b[n-1];
b
=2*x[n-1];
====>x
=2*x[n-1]+2*x[n-2]
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
long[] num=new long[41];
num[0]=0;
num[1]=3;
num[2]=8;
for(int i=3;i<41;i++){
num[i]=2*(num[i-1]+num[i-2]);
}
while(scanner.hasNextInt()){
int n=scanner.nextInt();
System.out.println(num
);
}
}
}
Problem Description
今年的ACM暑期集训队一共有18人,分为6支队伍。其中有一个叫做EOF的队伍,由04级的阿牛、XC以及05级的COY组成。在共同的集训生活中,大家建立了深厚的友谊,阿牛准备做点什么来纪念这段激情燃烧的岁月,想了一想,阿牛从家里拿来了一块上等的牛肉干,准备在上面刻下一个长度为n的只由"E" "O" "F"三种字符组成的字符串(可以只有其中一种或两种字符,但绝对不能有其他字符),阿牛同时禁止在串中出现O相邻的情况,他认为,"OO"看起来就像发怒的眼睛,效果不好。
你,NEW ACMer,EOF的崇拜者,能帮阿牛算一下一共有多少种满足要求的不同的字符串吗?
PS: 阿牛还有一个小秘密,就是准备把这个刻有 EOF的牛肉干,作为神秘礼物献给杭电五十周年校庆,可以想象,当校长接过这块牛肉干的时候该有多高兴!这里,请允许我代表杭电的ACMer向阿牛表示感谢!
再次感谢!
Input
输入数据包含多个测试实例,每个测试实例占一行,由一个整数n组成,(0<n<40)。
Output
对于每个测试实例,请输出全部的满足要求的涂法,每个实例的输出占一行。
Sample Input
1
2
Sample Output
3
8
贴上前辈的推导过程
设n位字符串,最后一位是O的字符串的个数为a
,最后一位不是O的字符串的个数是b
,
总字符串个数为x
,
则有
x
=a
+b
;
a
=b[n-1];
b
=2*x[n-1];
====>x
=2*x[n-1]+2*x[n-2]
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
long[] num=new long[41];
num[0]=0;
num[1]=3;
num[2]=8;
for(int i=3;i<41;i++){
num[i]=2*(num[i-1]+num[i-2]);
}
while(scanner.hasNextInt()){
int n=scanner.nextInt();
System.out.println(num
);
}
}
}
相关文章推荐
- struts2项目出现500错误
- JavaSE----API之常用类(Math、Random、System、BigInteger和BigDecimal、Date和DateFormat、Calendar)
- JavaSE----API之常用类(数组的高级操作、正则表达式)
- 初学Java多线程:从线程返回数据的两种方法
- Spring4.x整合Quartz2.x 动态修改定时器时间(修正多定时器SpringBean异常)
- [clone]Java中的深拷贝和浅拷贝 实例解析
- struts2学习笔记(十一)文件上传
- 如何设置eclipse的自动补齐功能
- 初学Java多线程:向线程传递数据的三种方法
- Spring与Quartz的整合实现定时任务调度(转)
- Java JVM 内部结构
- 学习WebSocket(一):Spring WebSocket的简单使用
- java.lang.System.arraycopy() 与java.util.Arrays.copyOf()的区别
- 字符串通配符
- Java多线程总结笔记(三)—— 同步和锁机制、synchronized
- java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification
- java环境变量配置
- 《Java设计模式》之桥接模式
- Eclipse 常用正则表达式
- JVM-java内存管理(1)