杭电oj_2047——阿牛的EOF牛肉串(java实现)
//20200322update
最近在重新把hdoj11页做一遍,发现递推还是有些模糊,就重新来更新下,新增一题2045
首先是2045题(RPG问题)
思路:分两种情况
1. 第n-1个元素和第一个元素同色,则第n-2个元素和第一个元素肯定不同色(因为之前的序列都是合法的),那么最后一个元素有两种选法,则这种情况的数量为2*f(n-2)
2. 第n-1个元素和第一个元素不同色,则最后一个格子只有一种选法,故这种情况数量为f(n-1)
故所有情况为二者之和
source code:
package hduoj;
import java.util.Scanner;
public class hdoj_2045 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long[] res = new long[51];
res[1] = 3;
res[2] = 6;
res[3] = 6;//注意第三个要单独列出,因为有三个元素的话,倒数第二个元素不可能和首元素相同
for(int i = 4;i<51;++i){
res[i] = res[i-1] + 2 * res[i-2];
}
while(sc.hasNext()){
System.out.println(res[sc.nextInt()]);
}
}
}
接下来是2047题
这一题看了下我原来的博客,使用的找规律的方法,画出分支树然后找规律,这样比较难懂
所以换了一种做法,比上一种更好懂
思路:
也是分为两种情况
1. 最后一个元素是‘o’的字符串
2. 最后一个元素不是‘o’的字符串
创建一个n行2列的二维数组,将第一种情况的数量存在第一列,第二种存在第二列
则第n行的情况为
1. 最后一个元素为‘o’的字符串数量为n-1行第二列的数值(因为不能有两个‘o’连在一起)
2. 最后一个元素不是‘o’的字符串数量为两倍的n-1行所有数据的和(因为无论是哪种情况后面都可以加非‘o’字母,切有两种选法)
source code
import java.util.Scanner;
/** */
public class Main{ public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long[][] dp = new long[40][2];
dp[0][0] = 1;
dp[0][1] = 2;
for(int i = 1;i<40;++i){
dp[i][0] = dp[i-1][1];
dp[i][1] = 2*(dp[i-1][1] + dp[i-1][0]);
} while(sc.hasNext()){ int i = sc.nextInt();
System.out.println(dp[i-1][0] + dp[i-1][1]);
} } }
---------------------------------------------------------------------
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2047
思路:先是列出了四个,但是没发现规律,然后开始画递归树,在其中找到了规律,算出递归式为f(n) = 2*[f(n-1)+f(n-2)]
递归树分析如下(有点潦草,看不懂可以留言,大致模型为嵌套):

source code:
package hduoj;
import java.util.Scanner;
public class hdoj_2047 {
/**
* 得出递归式:f(n) = 2*[f(n-1)+f(n-2)]
*/
public static void main(String[] args) {
long[] data = new long[41];
data[1] = 3;
data[2] = 8;
for(int i = 3;i<41;++i){
data[i] = 2*(data[i - 1]+data[i - 2]);
}
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
System.out.println(data[sc.nextInt()]);
}
}
}
代码已经ac
希望对大家有所帮助
以上
杭电oj_2047——阿牛的EOF牛肉串(java实现)的更多相关文章
- 杭电 2047 阿牛的EOF牛肉串 (递推)
阿牛的EOF牛肉串 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- 杭电-------2047阿牛的eof牛肉串(C语言写)
/* 主要看最后一个是否为O,若为O,则倒数第二个不能为O,则为a[n-2]*1*2; 若不为O,则最后一个有两个选择则为a[n-1]*2 */ #include<stdio.h> ] = ...
- 阿牛的EOF牛肉串[HDU2047]
阿牛的EOF牛肉串 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total S ...
- HDU H204 阿牛的EOF牛肉串
阿牛的EOF牛肉串 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Sub ...
- 阿牛的EOF牛肉串(递推)
阿牛的EOF牛肉串 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Sub ...
- 阿牛的EOF牛肉串-记忆化搜索或动态规划
C - 阿牛的EOF牛肉串 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submi ...
- T - 阿牛的EOF牛肉串(第二季水)
Description 今年的ACM暑期集训队一共有18人,分为6支队伍.其中有一个叫做EOF的队伍,由04级的阿牛.XC以及05级的COY组成.在共同的集训生活中,大家建立了深厚的 ...
- 【递推】ZSC1074: 数学、阿牛的EOF牛肉串
Description 今年的ACM暑期集训队一共有18人,分为6支队伍.其中有一个叫做EOF的队伍,由04级的阿牛.XC以及05级的COY组成.在共同的集训生活中,大家建立了深厚的友谊,阿牛准备做点 ...
- hdu 2047 阿牛的EOF牛肉串
如果末尾加的是E或F,显然是2*a[i-1] 如果末尾加的是O,则末2位一定是EO或FO,则为2*a[i-2]. 然后两者相加 2*a[i-1]+2*a[i-2] = 2*(a[i-1]+a[i-2] ...
随机推荐
- 了解JavaScript的语法基础,值和变量
通过JavaScript语法基础学习了解到1.怎么使用js/*通常js的引入和css一样,分为内部,外部和行内引入,执行自上而下,有着先后顺序*/:2.js的语法/*2.1js是用字母,数字.特殊字符 ...
- MySQL安全管理
数据库服务器通常包含关键的数据,确保这些数据的安全和完整需要利用访问控制. 一.访问控制 MySQL服务器的安全基础:用户应该对他们需要的数据具有适当的访问权,既不能多也不能少. 访问控制:你需要给用 ...
- RT-Thread can - STM32F103ZET6
SDK版本v4.0.2 目前,RT-Thread Studio还不能够自定义添加can设备.下面介绍手动添加过程: 使用RT-Thread Studio创建一个简单工程 使用RT-Thread env ...
- numpy 消除Futurewarning
numpy版本过高 1.查看numpy版本 import numpy as np np.__version__ 2.卸载numpy sudo pip3 uninstall numpy 3.安装较低版本 ...
- 【已解决2】pyinstaller UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xce in position 110: invalid continuation byte
python打包exe解码错误问题 最近做了一个小项目,其中把自己写的python打包成exe文件.我用的是pyinstaller. 只需要打包主程序py文件就ok. 在打包过程中,遇到一 ...
- css基本概念与css核心语法介绍
css基本概念 css是什么?不需要了解太多文字类介绍,记住css是层叠样式表,HTML是页面结构,css负责页面样式,javascrt负责静态页面的交互.CSS 能够对网页中元素位置的排版进行像素级 ...
- pyqt5加载pdf文档失败
import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog from PyPDF2 import Pdf ...
- Electron – 基础学习(2): 项目打包成exe桌面应用 之electron-packager
项目创建完成,启动正常,接下来就是项目打包了.将测试Demo打包成exe桌面应用,点击exe文件,运行项目. 书接上文,创建项目有三种方式 Git拷贝.直接创建:通过electron社群提供的命令行工 ...
- nginx 反向代理及 https 证书配置
nginx 反向代理及 https 证书配置 author: yunqimg(ccxtcxx0) 1. 编译安装nginx 从官网下载 nginx源码, 并编译安装. ./configure --pr ...
- 字节跳动挤上少儿英语末班车,gogokid能否抵达终点?
编辑 | 于斌 出品 | 于见(mpyujian) 近日,据多方消息,字节跳动旗下少儿英语品牌gogokid,迎来了一位新的90后CEO金钱琛.据知情人士透露,金钱琛入职不到两个月,目前全面掌管gog ...