hdu 2048 神、上帝以及老天爷(递推&错排)

三种思路: 错排: 1. N张字条的所有可能排列自然是N!(分母)。 现在的问题就是求N张字条的错排数f(N)(分子)。 首先我们考虑,如果前面N-1个人拿的都不是自己的票,即前N-1个人满足错排,现在又来了一个人,他手里拿的是自己的票。只要他把自己的票与其他N-1个人中的任意一个交换...

2014-07-31 21:47:10

阅读数 353

评论数 0

hdu 2046 骨牌铺方格(递推)

解题思路:Fibonacci数列

2014-07-31 21:13:47

阅读数 372

评论数 0

poj 3070 Fibonacii(矩阵乘法求Fibonacii)

题意:求第n个斐波那契数。 思路:矩阵快速幂。利用,可化为矩阵快速幂,即:由于矩阵乘法具有结合律,因此对于矩阵A,有A^4 = A * A * A * A = (A*A) * (A*A) = A^2 * A^2。我们可以得到这样的结论:当n为偶数时,A^n = A^(n/2)...

2014-07-31 20:56:55

阅读数 484

评论数 0

hdu 1058 Humble Numbers(DP)

题意:一组只因子只含有2,3,5,7的数据从小到大排列,求出第n个数 解题思路:1.此题为动态规划,难点在于如何将数据从小到大放在数组中 2.各个因子逐渐增加相乘,再比较大小得出数组 3.注意输出格式,除了11,12,13例外,其余格式余数1为st,2为nd,3为rd,其余为th

2014-07-31 17:58:28

阅读数 331

评论数 0

hdu 1799 循环多少次(DP,排列组合Cn(m))

抽象出来是排列组合题目 从n个数里面选择m个数、按递增方式放在每一层循环 郁闷、高中的公式都忘了 Cn(m)=C(n-1)(m-1)+C(n-1)(m) DP状态转移方程:

2014-07-31 10:23:13

阅读数 537

评论数 0

hdu 2^x mod n = 1(同余定理+暴搜)

#include int main(){ int n,m,i,j; while(~scanf("%d",&n)){ if(n==1||n%2==0) printf("2^? mod %d = 1\n",n); else{ long ...

2014-07-31 09:45:50

阅读数 466

评论数 2

hdu 1247 Hat’s Words(字典树)

题意:给你很多的单词,输出那些可以由其它的两个单词拼接起来的单词。 解法:先把所有单词插入到一个字典树中,然后暴力拆分每个单词,判断两段是不是都是单词,例如:abc  可以拆成 ab c和 a bc 分别判断是不是单词 如果两个都是单词就输出

2014-07-30 11:07:07

阅读数 357

评论数 0

hdu 1106 排序(字符串的分割)

#include #include #include #include using namespace std; int main(){ char s[1010]; int num[1010]; int n,m,i,j,t; while(~scanf("%s"...

2014-07-30 09:29:58

阅读数 329

评论数 0

hdu 1045 Fire Net(DFS+回溯)

题目描述:给你一个n x n的矩阵,若该点不为障碍,则可以放置大炮,大炮可向上下左右4个方向开炮,所以若同一行或同一列存在2门大炮并且他们之间没有障碍,则会出现互相攻击,当然我们不希望这种情况出现。现在问你最多能放置多少门大炮并且他们不能互相攻击。 解题思路:对于每个点,若能放置大炮则能选择放或...

2014-07-30 08:57:36

阅读数 418

评论数 0

hdu 2018 母牛的故事(递推)

第n年的牛,是前一年牛的头数,加上生下的头数,也就是能生产的母牛头数(n-3) f

2014-07-29 09:57:07

阅读数 428

评论数 0

正整数分拆使乘积最大

转自: 若干个正整数的和为S,求它们乘积的最大值F(S). 其实这是一个分解的问题,给定的S,分解成若干个正整数的和,然后求乘积的最大值。 S=a[1]+a[2]+…+a[n],F(S)=a[1]a[2]…a[n] 根据局部调整法分析所得到的A-G不等式,可以认为把S分成的都相等的n份是最...

2014-07-28 11:57:34

阅读数 529

评论数 0

poj 1032 Parliament(正整数拆分不同数使乘积最大)

求一组数2,3,...,w 1>.如果它们的和等于n,那么这组数就是使得乘积最大的数。 2>如果它们的和为sum,且n-sum==w,那么使得乘积最大的数为3,4,...,w,w+2,即前面几个数加1,最后一个数加2 3>如果它们的和为sum,且n-sum 证明:

2014-07-28 11:52:09

阅读数 563

评论数 0

hdu 1722 Cake

公式:p+q-gcd(p,q) 先把蛋糕分成q份,然后把蛋糕拼在一起,然后再分成p份。 分成q份需要切q刀,分成p份需要切p刀,但是会有重复,减去重复的部分就是gcd(p,q)

2014-07-26 16:57:20

阅读数 321

评论数 0

hdu 1019 Least Common Multiple(几个数的最小公倍数)

#include #include #include #include using namespace std; int gcd(int a,int b){ return !b?a:gcd(b,a%b); } int main(){ int t,n,i,j; long l...

2014-07-26 16:16:39

阅读数 338

评论数 0

hdu 1701 ACMer(水题)

ACMer人数在P%和Q%之间,那么P%的人与Q%的人就不能相同,因为一个是至少,一个是至多。另外注意浮点数的陷阱。

2014-07-26 10:09:03

阅读数 388

评论数 0

hdu 1060 Leftmost Digit(幂次方最高位)

转自网上牛人解题报告) 题目大意是输入N,求N^N的最高位数字。1 估计大家看到N的范围就没想法了。 确实N的数字太大,如果想算出结果,即使不溢出也会超时。 题目是这样转化的。 首先用科学计数法来表示      N^N  = a*10^x;    比如N = 3;  3^3 = ...

2014-07-26 09:42:52

阅读数 404

评论数 0

hdu 2045 不容易系列之(3)—— LELE的RPG难题(递推)

考虑长为n的串,以s[i]表示i位的字符。 1.若前n-1位组成的串合法,则由于首尾不同,再添加一位时,只有1种方法;即s[n] = s[n-1] 2.若前n-1位组成的串不合法,再添加一位后合法,即因为首尾相同而引起的不合法,那么前n-2位组成的串必定合法。此时第n位有2种添加方法。即s[...

2014-07-25 20:31:05

阅读数 289

评论数 0

hdu 2047 阿牛的EOF牛肉串(递推)

假设n=□□□□□□有f(n)种不同的串,当第n个是o时,那么第n-1个不能为o,此种情况有f(n-2)*2个 当第n个不是o时,有f(n-1)*2个; 即f(n)=f(n-1)*2+f(n-2)*2

2014-07-25 20:22:46

阅读数 560

评论数 0

hdu 1999 不可摸数(朴素打表法求质因子之和)

#include #include #define N 1000000 using namespace std; int num[N+10]={0},sum[1010]={0}; int main(){ int n,t,i,j; for(i=1;i<=N/2;i++){ for(j=...

2014-07-24 21:14:08

阅读数 495

评论数 1

hdu 4861 Couple doubi(费马小定理)

费马小定理: 假如p是质数,且(a,p)=1,那么 a^(p-1) ≡1(mod p)。即:假如a是整数,p是质数,且a,p互质,那么a的(p-1)次方除以p的余数恒等于1。

2014-07-24 20:42:47

阅读数 432

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭