
一些算法
文章平均质量分 64
sinat_35770194
这个作者很懒,什么都没留下…
展开
-
任意多边形的求解c语言
杭电2037题#include int main(void){ int n,i;//n个坐标 double sum;//面积 int site[150][2];//每个坐标 while(scanf("%d",&n)!=EOF)//获得输入 { if(n==0) break;//0时跳出 for(原创 2016-11-05 01:20:47 · 1627 阅读 · 0 评论 -
一个既用到了排序和贪心的算法
这是杭电2037#include int main(void){ int n;//n个节目 int i,j,v,out,t,min; int sta[200],end[200];//开始时间和结束时间 while(scanf("%d",&n)!=EOF)//获得输入 { if(n==0) break;原创 2016-11-05 01:31:34 · 1152 阅读 · 0 评论 -
关注递归数列
递归的数列在多个题目中均有体现,其中出现最频繁的是费波纳茨数列!而关于它的形式,各种各样。目前遇到的有以下几种:1、楼梯问题即每次上楼只能走一个或两个阶梯。然后询问走到第n个阶梯有多少种走法?标准费波纳茨数列!2、兔子问题一只兔子2个月后会生小兔子,兔子都不会死去,问n个月后又多少兔子?同理,兔子数列(费波纳茨数列)3、路径问题有格子如下说从一个数开原创 2016-11-08 21:26:06 · 342 阅读 · 0 评论 -
错位排列的魅力
错位排列:即n个有编号的人各自抽不中自己的号码以下证明其公式为:f(n)=(n-1)*(f(n-1)+f(n-2))首先是第一个人,称为1号1号不抽取自己,有(n-1)种抽取方法假设1号抽中2号有两种情况:1、2号也抽中了1号,于是剩下n-2个自己进行错位排列,得f(n-2)种2、2号没有抽中1号,则必有后面的抽中1号,于是此时将2号当作1号,即假设后面抽到的1号是2号,于是又有f(n-1)种所有原创 2016-11-10 01:55:40 · 366 阅读 · 0 评论 -
平面分割问题
首先是多直线分割:在一个平面上分割出最多的平面,于是第n条线必须与前n-1条线相交,于是第n条线被分成了两条射线和(n-2)条线段,于是增加了(n-2)+2=n个平面故f(n)=f(n-1)+n f(n-1)=f(n-2)+n-1.。。。。。。。。。。。。。。 f(2)=f(1)+2;又因为f(1)=2;可得通项公式:f(n)=(n^2+n-2)/2+2;原创 2016-11-10 23:31:36 · 627 阅读 · 0 评论 -
十进制转换为二进制的简洁算法
#include int main(void){ int n; long long int s,i; while(scanf("%d",&n)!=EOF){ i=1; s=0; while(n/2>=2) { s+=n%2*i; n=n/2;原创 2016-11-11 13:43:23 · 997 阅读 · 0 评论 -
关于杨辉三角的解决方案
#include //一个巧妙地算法,杨辉三角#include int main(void){ int n;//杨辉三角层数 int a[1001];//杨辉三角的每一层的数字,现在是第0层 int i,j,g,k;//g和k有十分大的意义 int first; while(scanf("%d",&n)!=EOF)//获得输入 {原创 2016-11-02 00:12:16 · 720 阅读 · 0 评论