UVA11375火柴(递推+大数)】的更多相关文章

题意:       给你n根火柴,问你能组成多少种数字,比如3根可以组成1或者7,组成的数字中不能有前导0, 思路:       我们开一个数组,d[i]记录用i跟火柴可以组成多少种数字,则更新状态是这样的 d[i+c[j]] += d[i], c[j]就是组成数字j要用的火柴数,这样跟新相当于是在模拟写数字,但是有一点就是不能以0开头,左后当火柴数大于等于6的时候就可以在总答案上+1,表示可以构成一个单独的0(因为之前没有0开头的,所以要+1补回来),最后答案就是 Ans[n] = d[1]…
Description In how many ways can you tile a 2xn rectangle by 2x1 or 2x2 tiles? Here is a sample tiling of a 2x17 rectangle. Input Input is a sequence of lines, each line containing an integer number 0 <= n <= 250. Output For each line of input, outp…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1297 题目大意: 有n个同学, 站成一排, 要求 女生最少是两个站在一起, 问有多少种排列方式. 题目分析: 1.  假设第n个学生是个男生, 我们可以直接将他放在最后有 dp[n-1]种 即: ...............M   dp[n-1] 2.假设第n个放女生,要求两个女生在一起, 我们可以直接在最后放两个女生 即: .............FF    dp[n-2] 3.假设我们后面…
Description A sequence consisting of one digit, the number 1 is initially written into a computer. At each successive time step, the computer simultaneously tranforms each digit 0 into the sequence 1 0 and each digit 1 into the sequence 0 1. So, afte…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1865 本题的关键是找递推关系式,由题目,可知前几个序列的结果,序列长度为n=1,2,3,4,5的结果分别是,f(1)=1,f(2)=2,f(3)=3,f(4)=5,f(5)=8,所以猜测,递推关系式为: f(n)=f(n-1)+f(n-2),n>=3,f(1)=1,f(2)=2; 序列长度不超过200,即n的值不超过200,则估计f(n)的值得位数不超过1000位.在代码中,我们采用10000进制的方法…
题目:http://poj.org/problem?id=2506 题解:f[n]=f[n-2]*2+f[n-1],主要是大数的相加; 以前做过了的 #include<stdio.h> #include<string.h> ][];//ans数组的第一个下标表示瓷砖数目,第二个表示对应下的方法数 //数组是倒序存储 的 int main() { int n, i, j, count, b, p; while (scanf("%d", &n) != EOF…
题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=1133 题目大意: 有m+n个人去买电影票,每张电影票50元,  m个人是只有50元一张的,  n个人是只有100元一张的, 电影院自己本身是没有零钱的. 那么要收到100元的钱必须找人家50, 那么再次之前就必须 收到一个50元的, 问你有多少种不同的排列方式. (注意: 这里每个人都看成了不同的元素) 题目分析: 我们要是能找人家钱首先必须要有 m >= n 我们dp[m][n] 再加一个人 只…
Description As we all know the Train Problem I, the boss of the Ignatius Train Station want to know if all the trains come in strict-increasing order, how many orders that all the trains can get out of the railway. Input The input contains several te…
Tiling c[0]=1,c[1]=1,c[2]=3;   c[n]=c[n-1]+c[n-2]*2;   0<=n<=250.   大数加法 java  time  :313ms 1 import java.util.*; 2 import java.math.*; 3 public class Main 4 { 5 static int MS=251; 6 static BigInteger[] ans; 7 8 public static void main(String[] args…
Game of Connections Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4246    Accepted Submission(s): 2467 Problem Description This is a small but ancient game. You are supposed to write down the…