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:一组新的测试数据,大神的跳跃点貌似有些bug,如何处理?处理好了,AC的代码In Reply To:一组新的测试数据,大神的跳跃点貌似有些bug,如何处理? Posted by:iChinxu at 2017-06-18 07:55:58 #include <iostream> #include <cmath> //abs函数 //#include <stdio.h> #include <algorithm> using namespace std; //全局变量、函数 const int N=1000; int InMap[N][2]; int OutMap[N*9][2]; int total=0; int width; int cmp(const void *a, const void *b); int getvalue(int pos); int getcode(int pos); int main() { int pairv,pairn; while(cin>>width && width) { int p=0; total=0; while(cin>>pairv>>pairn && pairn) { InMap[p][0]=pairv; InMap[p++][1]=pairn; total+=pairn; } int pairN=p; cout<<width<<endl; int pos=0,k=0,tpos; p=0; while(p<pairN) { int row=pos/width; int col=pos%width; for(int i=row-1;i<=row+1;i++) for(int j=col-1;j<=col+1;j++) { tpos=i*width+j; if(i<0||j<0||j>width||tpos>total-1) continue;//j==width为下一行第一个,也需要处理。即为跨行处理。 OutMap[k][0]=tpos; OutMap[k++][1]=getcode(tpos); } pos+=InMap[p++][1]; } //处理最后一行第一个 OutMap[k][0]=total-width; OutMap[k++][1]=getcode(total-width); int OutN=k; qsort(OutMap,OutN,sizeof(OutMap[0]),cmp); k=0; int temp0,temp1; temp1=OutMap[k][1]; temp0=OutMap[k][0]; while(k<OutN) { if (OutMap[k][1]==temp1) { k++; continue; } cout<<temp1<<" "<<OutMap[k][0]-temp0<<endl; temp1=OutMap[k][1]; temp0=OutMap[k++][0]; } cout<<temp1<<" "<<total-temp0<<endl; cout<<"0 0"<<endl; } cout << "0" << endl; return 0; } int cmp(const void *a, const void *b) { int *x=(int*)a; int *y=(int*)b; return *x-*y; } int getvalue(int pos) { int p=0,k=0; while(k<=pos) k+=InMap[p++][1]; return InMap[--p][0]; } int getcode(int pos) { int code=0; int m1=getvalue(pos),m2,tpos; int r=pos/width; int l=pos%width; for(int i=r-1;i<=r+1;i++) for(int j=l-1;j<=l+1;j++) { tpos=i*width+j; if(i<0||j<0||j>width-1||tpos>total-1||tpos==pos) continue; m2=getvalue(tpos); code=abs(m1-m2)>code?abs(m1-m2):code; } return code; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator