[CF126D]Fibonacci Sums/[BJOI2012]最多的方案 题目大意: 将\(n(n\le10^9)\)表示成若干个不同斐波那契数之和的形式,求方案数. 思路: 如果不考虑\(0\),则\(10^9\)以内的斐波那契数只有86个. 首先求出字典序最大的方案,考虑分裂里面的数. 用\(c_i\)表示字典序最大方案在斐波那契数列中的下标(递增),\(f_{i,j}\)表示考虑到第\(i\)个数,本身是否分裂的方案数. 转移方程为: \[ f_{i,0}=f_{i-1,0}+f_{i…
DP? Problem Description Figure 1 shows the Yang Hui Triangle. We number the row from top to bottom 0,1,2,…and the column from left to right 0,1,2,….If using C(n,k) represents the number of row n, column k. The Yang Hui Triangle has a regular pattern…
题目链接: [UOJ86]mx的组合数 题目大意:给出四个数$p,n,l,r$,对于$\forall 0\le a\le p-1$,求$l\le x\le r,C_{x}^{n}\%p=a$的$x$的数量.$p<=3000$且保证$p$是质数,$n,l,r<=10^30$. 对于$10\%$的数据,可以直接杨辉三角推.对于$20\%$的数据,因为$n$是确定的,可以递推出$C_{x+1}^{n}=C_{x}^{n}*\frac{x+1}{x+1-n}$.对于另外$20\%$的数据,可以枚举$x…
拉姆齐(Ramsey)定理是要解决以下的问题:要找这样一个最小的数n,使得n个人中必定有k个人相识或l个人互不相识 我们所知道的结论是这样的 6 个人中至少存在3人相互认识或者相互不认识. 该定理等价于证明这6个顶点的完全图的边,用红.蓝二色任意着色,必然至少存在一个红色边三角形,或蓝色边三角形 HDU6152 给出 n 个人之间的关系,如果其中有三个人互相认识或者互相不认识,则输出 Bad Team! ,否则输出 Great Team! 当人数大于等于 6 时其结果一定是 Bad Team!…
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/qq574857122/article/details/34120269 题目链接:点击打开链接 题意: 给定一个数n 问把这个数拆成多个不同样的fibonacci数 有多少种拆法 #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> #include<mat…
题目链接:http://codeforces.com/contest/126/problem/D 题意:一个数能够有多种由互不同样的斐波那契数组成的情况: 解法:dp,easy证明:每一个数通过贪心能够找到一种最少数量的斐波那契数组成方案.然后找到有多少种取代的方案:dp[i][0]表示前i个里面第i个数不动的方案数.dp[i][1]表示前i个里面第i个数下放的方案数.由于下放最多下放到已经有了的数,并且下放过程中,i下放.那么i-1就会固定无法下放,最多仅仅能继续下放i-2.直到下放到已经存在…
先考虑一个斐波那契数能分成其他斐波那契数的方案,假如f[i]表示第i个斐波那契数,那么只要对他进行拆分,f[i-1]这个数字必定会存在.知道这一点就可以进行递推了.先将数字分成最少项的斐波那契数之和,s[i]表示第i项的数字对应的斐波那契数编号,F[i]表示对不第i项进行拆分,G[i]表示对第i项进行拆分,g[i]表示对编号为i的斐波那契数拆分的话,有多少种方案.那么可以得到递推式: F[i]=F[i-1]+G[i-1]; G[i]=F[i-1]*(g[s[i]-s[i-1]])+G[i-1]*…
关于Fibonacci博弈的一些学习 一道例题 问题 给定n(n≥2)个石头,游戏双方轮流取至少一个石子,取到最后一个石子的人算赢,但是要满足一下规则: 第一次取不能全部取完所有的石子. 设前一次取的石子数为m,这次取的石子的数量不能超过2m. 问先手是否有必胜策略. 分析 当时看到这道题(当时看的还是加强版)的时候第一反应是设计DP. 计fi,j为还剩下i 个石头,取的上限为j时是否有必胜策略.然后依题意DP或记忆化搜索转移即可. 然而这样显然是不能通过本题的,因为数据范围比较大. 这里引(b…
游戏规则: 有一堆个数为n的石子,游戏双方轮流取石子,满足: 1)先手不能在第一次把所有的石子取完: 2)之后每次可以取的石子数介于1到对手刚取的石子数的2倍之间(包含1和对手刚取的石子数的2倍). 约定取走最后一个石子的人为赢家,求必败态. 问题分析: 这个和之前的Wythoff’s Game 和取石子游戏 有一个很大的不同点,就是游戏规则的动态化.之前的规则中,每次可以取的石子的策略集合是基本固定的,但是这次有规则2:一方每次可以取的石子数依赖于对手刚才取的石子数. 这个游戏叫做Fibona…
问题: 有一堆个数为n(n>=2)的石子,游戏双方轮流取石子,规则如下: 1)先手不能在第一次把所有的石子取完,至少取1颗: 2)之后每次可以取的石子数至少为1,至多为对手刚取的石子数的2倍. 约定取走最后一个石子的人为赢家,求必败态. 结论:当n为Fibonacci数的时候,先手必败. f[i]:1,2,3,5,8,13,21,34,55,89…… 证明: 数学归纳法: 为了方便,我们将n记为f[i]. 1.当i=2时,先手只能取1颗,显然必败,结论成立. 2.假设当i<=k时,结论成立.…