Ural 1225. Flags 斐波那契DP】的更多相关文章

1225. Flags Time limit: 1.0 secondMemory limit: 64 MB On the Day of the Flag of Russia a shop-owner decided to decorate the show-window of his shop with textile stripes of white, blue and red colors. He wants to satisfy the following conditions: Stri…
题目:点击打开链接 多校练习赛4的简单题,但是比赛的时候想到了推导公式f(n)=f(n-1)+f(n-2)(就是斐波那契数列),最后却没做出来. 首先手写一下he(不是hehe)连续时的规律.0-1 1-1 2-2 3-3 4-5,斐波那契无误. 比赛的时候没有分清楚连续的he和间断的he的不同,只有连续的he才能用斐波那契数列来表示,而间断点应该重新计算he出现的次数,最后根据组合数的原理相乘,即可得到最终的答案. //dp,但是找规律也可以发现连续的是FIb数列. #include <ios…
有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行.请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数. 其中,蜂房的结构如下所示. Input输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0<a<b<50). Output对于每个测试实例,请输出蜜蜂从蜂房a爬到蜂房b的可能路线数,每个实例的输出占一行. Sample Input 2 1 2 3 6 Sample Output 1 3题解:由于到达第i个蜂房只能从左上或右下到达,则到达第i个…
题目传送门 /* 1 r; 2 b; 3 w 2不能在最前面,所以dp[1] = 2; dp[2] = 2: 13 or 31 dp[i] = dp[i-1] + dp[i-2]; 只加1或3时,总数dp[i-1]; 只加12或32时,总数dp[i-2]; 详细解释:http://www.cnblogs.com/vongang/archive/2011/09/30/2196847.html */ #include <cstdio> #include <iostream> #incl…
题面: solution: 这题和斐波那契数列没有任何关系!!!!! 这题就是一个无脑DP!!!!!!!!!! 因为所有数都要出现至少一次,所以只需考虑其组合而不用考虑其排列,最后乘个 n!就是了(意思就是可以当做这 N 个数是无序的) dp[i][j]表示前 i 个序列放了 j 种数的方案数,所以在放第 i+1 个数的时候有两种选择 放一个新的数 则状态变到 dp[i+1][j+1] 放一个前面有的数 则状态变到 dp[i+1][j] 对于第一种转移情况有 dp[i+1][j+1]+=dp[i…
Description bzoj2323 Solution 题目看起来非常复杂. 本质不同的细胞这个条件显然太啰嗦, 是否有些可以挖掘的性质? 1.发现,只要第一次分裂不同,那么互相之间一定是不同的(即使总数目相同). 所以先考虑第一次分裂后,一个固定小球体数量的情况: 2.第一次分裂后,最后的小球体数量固定.想要方案数不同,必须连接方式不同. 可以列出dp式子,f[n](以n结尾砍一刀)=f[n-2]+f[n-3]+...+f[2]+f[0],而f[0]=1,f[1]=0 而fibo[n]-1…
斐波那契数列:1, 1, 2, 3, 5, 8, 13,...,即 f(n) = f(n-1) + f(n-2). 求第n个数的值. 方法一:迭代 public static int iterativeFibonacci(int n) { //简单迭代 int a = 1, b = 1; for(int i = 2; i < n; i ++) { int tmp = a + b; a = b; b = tmp; } return b; } 方法二:简单递归 public static long…
题目链接 传送门 思路 由\(a\bigoplus b=c\rightarrow a=c\bigoplus b\)得原式可化为\(x\bigoplus 2x=3x\). 又异或是不进位加法,且\(2x=1<<x,3x=(1<<x)+x\),因此可知\((x\&2x)=0\),也就是说\(x\)的二进制中没有相邻的\(1\). 第一问就可以用数位\(DP\)来写. 对于第二问我们可以考虑递推式,我们定义\(f(x)\)表示\(2^x\)时满足等式的数的个数,则 如果第\(n\…
斐波那契数列 矩阵乘法优化DP 求\(f(n) \%1000000007​\),\(n\le 10^{18}​\) 矩阵乘法:\(i\times k\)的矩阵\(A\)乘\(k\times j\)的矩阵\(B\)得到\(k\times k\)的矩阵,其中第\(i\)列第\(j\)行的数就是\(A\)的第\(i\)行所有数与\(B\)的第\(j​\)列分别相乘再相加 考虑使用矩阵乘法优化DP,为了最后得到\(f(n)​\),我们设矩阵\(\text{base}​\),使\(\begin{bmatr…
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2041 题目分析:题目是真的水,不难发现规律涉及斐波那契数列,就直接上代码吧. 代码如下: #include <iostream> #include <cstring> using namespace std; int t, n, num[40]; int dp(int n) { if (n == 1 || n == 2) return num[n] = n; if (num[n] !=…