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 |
急!!哪位大侠帮忙看,测试的数据都过了,discuss里的数据也全过了,但就是WA,不知为什么?#include<iostream> #include<map> #include<memory> using namespace std; int p[100][100]; int r[4]={1,-1,0,0}; int l[4]={0,0,1,-1}; struct node { int w,i,j; }; struct ltstr { bool operator()(const node s1, const node s2) const { return s1.w<s2.w; } }; void main() { map<const node,int,ltstr> ele; int R,L,v; cin>>R>>L; node pij; for(int i=0;i<R;i++) for(int j=0;j<L;j++) { cin>>pij.w; p[i][j]=pij.w; pij.i=i; pij.j=j; ele[pij]=0; } map<const node,int,ltstr>::iterator cur=ele.begin(); (*cur).second=1; int max=(*cur).second; int x,y; for(i=1;i<R*L;i++) { int pox,poy; cur++; x=(*cur).first.i; y=(*cur).first.j; for(int m=0;m<4;m++) { pox=x+r[m]; poy=y+l[m]; if(pox>=0&&pox<R&&poy>=0&&poy<L) { node temp; temp.w=p[pox][poy]; temp.i=pox,temp.j=poy; map<const node,int,ltstr>::iterator obj=ele.find(temp); if(temp.w<(*cur).first.w) if((*obj).second>=(*cur).second) (*cur).second=(*obj).second+1; } } if((*cur).second==0) (*cur).second=1; if((*cur).second>max) max=(*cur).second; //cout<<(*cur).first.w<<" "<<(*cur).second<<endl; } cout<<max<<endl; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator