| ||||||||||
Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:请教用什么编译器?In Reply To:请教用什么编译器? Posted by:dlxxxt at 2015-01-11 10:52:31 #include <stdio.h> typedef struct SnowFiled { int hight; int x; int y; }SnowFiled; void QuickSort(SnowFiled [],int); void Search(int,int,int*,int,int,int); int steptotal = 0; main() { int xnum,ynum,num = 0,step; struct SnowFiled snow[10000]; int matrix[100][100]; int *p; p = &matrix[0][0]; int i,j; scanf("%d%d",&xnum,&ynum); for(i=0;i<xnum;i++) for(j=0;j<ynum;j++) { scanf("%d",&matrix[i][j]); snow[num].x = i; snow[num].y = j; snow[num].hight = matrix[i][j]; num++; } QuickSort(snow,num); for(i=0;snow[i].hight-snow[num-1].hight>steptotal-1;i++) { Search(snow[i].x,snow[i].y,p,xnum,ynum,1); } printf("%d",steptotal); } void QuickSort(SnowFiled snow[],int num) { int i = 0,j = num - 1; SnowFiled val = snow[0]; if(num>1) { while(i<j) { for(;j>i;j--) { if(snow[j].hight>val.hight) { snow[i] = snow[j]; i++; break; } } for(;i<j;i++) { if(snow[i].hight<val.hight) { snow[j] = snow[i]; j--; break; } } } snow[i] = val; QuickSort(snow,i); QuickSort(snow+i+1,num-i-1); } } void Search(int x,int y,int *p,int xnum,int ynum,int step) { int dir[4][2] = {0,-1,0,1,1,0,-1,0}; int i; if(steptotal<step) { steptotal = step; } for(i=0;i<4;i++) { if((x+dir[i][0])>=0&&(x+dir[i][0])<xnum&&(y+dir[i][1])>=0&&(y+dir[i][1])<ynum&&*(p+100*x+y)>*(p+100*(x+dir[i][0])+y+dir[i][1])) { Search(x+dir[i][0],y+dir[i][1],p,xnum,ynum,step+1); } } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator