摘要: 题目链接:http://poj.org/problem?id=1707 利用bernoulli方程来解决此题。 数学上,伯努利数Bn的第一次发现是与下述数列和的公式有关: 其中n为固定的任意正整数。 这数列和的公式必定是变量为m,次数为n+1的多项式,称为伯努利多项式。伯努利多项式的系数与伯努利数有密切关系如下: 举例说,把n取为1,我们有 伯努利数可以由下列递推公式计算: ,初值条件为B0= 1。 [摘自wikipedia] 注意:这里计算的是0~m-1的值,因此最后第二项还要加上一个m^n; 1 //STATUS:C++_AC_0MS_140KB 2 #i... 阅读全文
posted @ 2013-04-08 23:25 zhsl 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 摘自:http://www.cnblogs.com/jackiesteed/articles/2198534.html想深究的童鞋可以看看这本书:)-->100个著名初等数学问题历史和解.pdf第01题,阿基米德分牛问题.太阳神有一牛群,由白,黑,花,棕四种颜色的公,母牛组成.在公牛中,白牛数多于棕牛数,多出之数相当于黑牛数的1/2+1/3;黑牛数多于棕牛数,多出之数相当于花牛数的1/4+1/5;花牛数多于棕牛数,多出之数相当于白牛数的1/6+1/7.在母牛中,白牛数是全体黑牛数的1/3+1/4;黑牛数是全体花牛数1/4+1/5;花牛数是全体棕牛数的1/5+1/6;棕牛数是全体白牛数的1 阅读全文
posted @ 2013-04-08 19:21 zhsl 阅读(562) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=1286 有旋转和轴对称两种基本置换,先考虑旋转的情况,当旋转 i 个珠子的时候,可以得出循环节有gcd(n,i)个,则和为 Σ 3^gcd(n,i)。轴对称的情况很容易考虑,分n为奇数和偶数就可以了,n为奇数: n*3^((n+1)/2) n为偶数:n/2*(3^(n/2)+3^(n/2+1))。 1 //STATUS:C++_AC_0MS_132KB 2 #include<stdio.h> 3 #include<stdlib.h> 4 #include<string.h> 5 #include 阅读全文
posted @ 2013-04-08 17:17 zhsl 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3270 把数列循环分解,注意到长度为k的循环最少用k-1次置换,那么次循环的最优值就是用循环中的最小值去与每个置换,还要考虑此循环中的最优值可以由其它循环影响,影响的那个循环肯定还有数列中的最小值。 1 //STATUS:C++_AC_16MS_396KB 2 #include<stdio.h> 3 #include<stdlib.h> 4 #include<string.h> 5 #include<math.h> 6 #include<iostream> 7 #incl 阅读全文
posted @ 2013-04-08 00:50 zhsl 阅读(287) 评论(0) 推荐(0) 编辑