上一页 1 2 3 4 5 6 7 ··· 11 下一页
  2011年8月9日
摘要: #include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>int n;int set[110]={0},a[110]={0},b[110]={0};int cmp(const void *a,const void *b){ return *(int *)b-*(int *)a;}int main(){ while(scanf("%d",&n),n) { for(int i=1;i<=n;i++) { scanf("%d&qu 阅读全文
posted @ 2011-08-09 18:50 枫叶飘泪 阅读(290) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h>#include<stdlib.h>#include<string.h>int n,set[110];void Bu_sort(){ int swap; for(int i=1;i<=n;i++)//进行n趟排序 { swap=0; for(int j=1;j<=n-i;j++)//每趟交换n-i次 { if(set[j]>set[j+1]) { set[j]=set[j+1]^set[j]; set[j+1]=set[j+1]^set[j]; set[j]=set[j+1]^set[j]; swap=1; 阅读全文
posted @ 2011-08-09 11:35 枫叶飘泪 阅读(163) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h>#include<string.h>#include<stdlib.h>int n,set[110],a;int erfen_search(){ int low,mid,high; high=n; low=1; int flag=0; while(low<=high) { mid=(low+high)/2; if(set[a]>set[mid]) { low=mid+1; } else if(set[a]<set[mid]) { high=mid-1; } else { flag=mid; break; } 阅读全文
posted @ 2011-08-09 09:39 枫叶飘泪 阅读(1239) 评论(0) 推荐(0) 编辑
  2011年8月8日
摘要: #include<stdio.h>#include<string.h>#include<stdlib.h>int n,set[110],a;int s_search(){ set[0]=a; int i=n; while(set[i]!=set[0]) { i--; } return i;}int main(){ while(scanf("%d%d",&n,&a),n) { memset(set,0,sizeof(set)); for(int i=1;i<=n;i++) { scanf("%d", 阅读全文
posted @ 2011-08-08 20:53 枫叶飘泪 阅读(132) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h>#include<string.h>#include<stdlib.h>int n,a[110];void d_insertsort(){ for(int i=2;i<=n;i++) { if(a[i]<a[i-1]) { a[0]=a[i]; int j; for(j=i-1;a[0]<a[j];j--) { a[j+1]=a[j]; } a[j+1]=a[0];//刚开始将a[j]=a[0],结果错了,后面才发现有问题。 } }}int main(){ while(scanf("%d" 阅读全文
posted @ 2011-08-08 17:36 枫叶飘泪 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 昨天小学了一点计算几何学的内容,想把它记下来,以便以后翻阅。1.判断点是否在多边形中先说一下思路:判断点(P)是否在多边形中,可以先以点p向左引一条射线(L),我们知道,从射线L左端的无穷远处开始一直到点P的过程中,当遇到多边形的第一个交点时L进入了多边形,当遇到第二个交点时,L穿出了多边形。。。。。。。。。可知,规律如下,当在遇到P点之前L与多边形的交点为偶数个时,说明p点不在多边形内,当在遇到p点之前L与多边形得交点为奇数个时,说明P点在多边形内。但是,这个规律并不具有普遍性,还有几种特殊情况不满足此规律,需要额外考虑:(1)当点P在多边形的某条边上时,可以直接判断其在多边形中。(2)对于 阅读全文
posted @ 2011-08-08 11:01 枫叶飘泪 阅读(5795) 评论(0) 推荐(0) 编辑
  2011年8月7日
摘要: #include<stdio.h>#include<string.h>#include<stdlib.h>int gcd(int x,int y){ return y==0 ? x : gcd(y,x%y);}int main(){ int a,b,lim; while(scanf("%d%d",&a,&b)!=EOF) { lim=(a*b)/gcd(a,b); printf("%d\n",lim); } //system("pause"); return 0;} 阅读全文
posted @ 2011-08-07 21:19 枫叶飘泪 阅读(254) 评论(0) 推荐(0) 编辑
  2011年8月5日
摘要: 就是一个错排的公式,错排的相关简介见链接:此题用到的公式是:f(n)=(n-1)*(f(n-1)+f(n-2));其递推公式是:f(n)=n!(1-1/1!+1/2!-1/3!+1/4!+....................+(-1)^n*1/n!);本题还有一点就是,set[]数组存的数据过大,约为25!用int型来存,显然不够,所以要定义为 long long型,今天看了一下long long型的数据类型,数据范围能占到8个字节,与__int64是同一个东西,只是不同编译器下的不同写法而已,其输出形式为%I64d。#include<stdio.h>#include<s 阅读全文
posted @ 2011-08-05 17:30 枫叶飘泪 阅读(692) 评论(0) 推荐(0) 编辑
  2011年7月31日
摘要: 其实一直以来,都认为位运算没太大的用处,基本上很少用的着,但是后来才发现,因为位运算是操作计算机最基础的数据,所以运行效率会很快,看来以后要重视一下了。现在记录一下我知道的按位异或运算的一个应用吧:按位异或可以用来交换两个变量的值:例如:a=7,b=8;我们常用加减运算来交换两个变量的值,如下:(这样的效率比为运算低)a=a+b;b=a-b;a=a-b;用位运算交换操作如下:a=a^b;b=a^b;a=a^b; 阅读全文
posted @ 2011-07-31 20:44 枫叶飘泪 阅读(398) 评论(0) 推荐(0) 编辑
  2011年7月30日
摘要: 这个题目刚开始觉得测试数据都能过但是一直wa,都找不到错在哪,觉得很有挫败感,但是后来才发现原来由于习惯导致了一个错误。以下为正确代码:#include<stdio.h>#include<string.h>#include<stdlib.h>char a[1010],b[1010];int next[1010];int n,m;void get_next(){ int i=0,j=-1; next[0]=-1; while(i<m-1) { if(b[i]==b[j]||j==-1) { i++; j++; if(b[i]!=b[j]) { next[ 阅读全文
posted @ 2011-07-30 21:50 枫叶飘泪 阅读(338) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 11 下一页