摘要: #includevoid build_tree(int n,int *a,int *b,int *c){ int *p=b,tt=0; if(n<=0) return; while(1){ if(a[0]==*p){//找到中序表示中根的位置 break; } else p++; } tt=p-b; build_tree(tt,a+1,b,c); build_tree(n-tt-1,a+tt+1,b+tt+1,c+tt); c[n-1]=a[0];}int main(){ int n,i; while(~scanf("%d",&n)){ int a[1002] 阅读全文
posted @ 2013-08-12 22:00 hpu张亚飞 阅读(163) 评论(0) 推荐(0) 编辑
摘要: #include#includeint main(){ int n,m,b,s,k; scanf("%d",&n); while(n--) { scanf("%d%d",&m,&b); for(k=1;;k++) { if((b%9973*k)%9973==m) { printf("%d\n",k%9973); break; } } } return 0;} 阅读全文
posted @ 2013-08-12 21:59 hpu张亚飞 阅读(167) 评论(0) 推荐(0) 编辑
摘要: #include#include#include#includeusing namespace std;/*double cmp(const void*a,const void*b){ return *(double*)b>*(double*)a?1:-1;}*/int main(){ int i,n,m; scanf("%d",&n); while(n--) { int j=1; double s=0,a[660]={0},b[660]={0}; scanf("%d",&m); for(i=0;i=sqrt(20)) //prin 阅读全文
posted @ 2013-08-12 21:57 hpu张亚飞 阅读(138) 评论(0) 推荐(0) 编辑
摘要: #include#includeint count(int x,int y,char z) { if(z=='d') return x+y; if(z=='a') return x>y?x:y; if(z=='i') return x='a'&&a[i]='0'&&a[i]='0'&&a[i]<='9') { sum=sum*10+a[i]-'0'; i++; } c[ctop++]=sum; } else 阅读全文
posted @ 2013-08-12 21:56 hpu张亚飞 阅读(211) 评论(0) 推荐(0) 编辑
摘要: #include #include char a[11000],b[21000];int main(){ int n,m,i,j,btop; scanf("%d",&n); while(n--) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); scanf("%s",a); m=strlen(a); btop=1; j=0; if(m&1) printf("No\n"); else { for(i=0;i<m;i++) { if(a[i]=='['|| 阅读全文
posted @ 2013-08-12 21:54 hpu张亚飞 阅读(138) 评论(0) 推荐(0) 编辑
摘要: #include #include int n,m,i,s,t; int a[100009]; int sum[100009]; int hash[100009]; int main() { while(scanf("%d%d",&n,&m),n+m) { memset(hash,0,sizeof(hash)); for( i=1;i0) { s=hash[sum[i]]+1; t=i; break; } hash[sum[i]]=i; } for(i=s;i<t;i++) printf("%d ",i); printf(" 阅读全文
posted @ 2013-08-12 21:52 hpu张亚飞 阅读(154) 评论(0) 推荐(0) 编辑
摘要: #include#includeint d[22][22][22];int w(int a,int b,int c){ if(a20||b>20||c>20) return d[20][20][20]=w(20,20,20); else if(d[a][b][c]) return d[a][b][c]; else if(a<b&&b<c) return d[a][b][c]=w(a, b, c-1) + w(a, b-1, c-1) - w(a, b-1, c); else return d[a][b][c]=w(a-1, b, c) + w(a-1, 阅读全文
posted @ 2013-08-12 13:17 hpu张亚飞 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 转载地址 http://blog.163.com/fzu_q_q/blog/static/18645105720115270952949/一、对int类型数组排序int num[100];Sample:int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; }qsort(num,100,sizeof(num[0]),cmp);二、对char类型数组排序(同int类型)char word[100];Sample:int cmp( const void *a , const void *b ) { retu 阅读全文
posted @ 2013-08-07 20:25 hpu张亚飞 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 转载的:http://www.cnblogs.com/zhangshu/archive/2011/05/20/2052359.htmlqsort和sort的区别First qsort基本快速排序的方法,每次把数组分成两分和中间的一个划分值,而对于有多个重复值的数组来说,基本排序的效率较低。集成在C语言库函数里面的的qsort函数,使用 三 路划分的方法解决这个问题。所谓三路划分,是指把数组划分成小于划分值,等于划分值和大于划分值的三个部分。函数对buf 指向的数据按升序排序。使用方法:void qsort( void *base, size_t num, size_t width, int ( 阅读全文
posted @ 2013-08-05 15:22 hpu张亚飞 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 这篇文章是 一楼那个学长写的C库函数qsort七种使用方法示例七种qsort排序方法一、对int类型数组排序C++代码int num[100]; Sample: int cmp ( const void *a , const void *b ) { return *(int *)a – *(int *)b; } qsort(num,100,sizeof(num[0]),cmp); 二、对char类型数组排序(同int类型)C++代码char word[100]; Sample: int cmp( const void *a , const void *b ) { return *(c... 阅读全文
posted @ 2013-08-05 10:46 hpu张亚飞 阅读(321) 评论(2) 推荐(0) 编辑