数学
waterbuffalo
这个作者很懒,什么都没留下…
展开
-
poj1674解题报告
置换群的一个应用,找到给定序列中环的个数,再用元素个数减去环数,就是所求的数。#include using namespace std;bool use[10010];int num[10010];int main(){ int test,n; int count,i; scanf("%d",&test); while(test--) { coun原创 2010-04-11 20:40:00 · 494 阅读 · 0 评论 -
poj1905解题报告
一道二分题目,大意是一根横在两堵墙之间的木棒受热膨胀后,变为弧形,求弧形中点与原木棒中点的距离,给出木棒原长度Len,膨胀系数Coe,加热的度数n,膨胀n度后长度为S=Len*(1+n*Coe);这样根据一些数学知识就可以得到下面三个式子①R^2-Len^2/4=(R-H)^2②sinθ=Len/2R;③θ=S/2R;由一系列变换可求出S0=R*asin(Len/2R),其中R=(原创 2010-04-12 14:42:00 · 1060 阅读 · 0 评论 -
poj3122解题报告
自从上次在校赛被道二分给虐了后,一直想做二分题。题意是:某人在生日的时候请朋友一起吃pie,但是他的朋友十分挑剔,如果有人分到了一块比其他人大的pie,那么其他的朋友就会抱怨,因此每个人,包括主人,都必须分到大小一样的pie,但是每个人的pie只能是从一块大的圆形pie中切出来的,要求求出每人能分到的最大的pie,给定圆形pie的数量n,朋友数量m,以及每个pie的半径r【i】。一道基础的原创 2010-04-14 15:46:00 · 511 阅读 · 0 评论 -
斐波那契数列的另一个递归式
上次同学给道题给我,是关于斐波那契数列的。本来是要求其他的东西,但写着写着发现了这个新的递归式,尽管可能作用不大,但还是想写出来f0=0;f1=1;f2=1;f[i]=f[i-1]+f[i-2];f[i]=2*f[i-2]+f[i-3];f[i]=3*f[i-3]+2*f[i-4];f[i]=5*f[i-4]+3*f[i-5];……f[i]=f[原创 2010-04-14 15:54:00 · 242 阅读 · 0 评论 -
poj1329解题报告
赤裸裸的求三角形外接圆,即根据三点坐标确定圆心坐标和圆的半径。圆的半径=a*b*c/(4*s)(a,b,c分别为三角形的三边长,s是三角形的面积)。s=a*b*sinA/22*r*sinA=a (画图,构造直角三角形,同弧对同圆周角可证)由上两式则可推出半径的公式。 圆心坐标。设三角形的三个顶点坐标为(ax,ay,(bx,by),(cx,cy);圆心坐标为(rx,ry)原创 2010-04-16 14:00:00 · 975 阅读 · 0 评论 -
poj3273解题报告
一道不错的二分,思路很重要。枚举可能的money值,然后判断分段的段数,跟给定值进行比较,接着不断逼近即可#includeusing namespace std;int n,m;int num[100010];int main(){ int left,right,mid; int i,sum=0; int cnt,temp,maxn=-1; scanf(原创 2010-04-21 23:44:00 · 450 阅读 · 0 评论 -
poj3258解题报告
跟3273差不多,买一送一。对可能的长度进行枚举,记录需要去掉的石头数,跟给定的m进行比较,然后二分不断逼近就行了。#include#includeusing namespace std;int x[50010];int main(){ int n,dis,m,i; int cnt,pre,rec; int left,right,mid; scanf("原创 2010-04-22 00:17:00 · 303 阅读 · 0 评论 -
poj 1095
<br />卡特兰数加递归,没想到能1A。<br />卡特兰数的含义有很多,其中一个是n个节点的二叉树的数目。卡特兰数的求法是c(2n,n)/(n+1)。于是我们能用卡特兰数来加快运算。直接求出给定数的二叉树含有几个节点。然后自己写个递归,返回指定数n的树。<br />#include<iostream>#include<string>using namespace std;int c[20]={ 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862,原创 2010-11-16 20:12:00 · 386 阅读 · 0 评论