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 |
哪位高手帮忙看看代码,自己在下面能通过,为什么总是wa呢 ,我用的是宽度优先搜索# include <iostream> // 1606 wrong answer # include <vector> # include <string> # include <queue> using namespace std; class jiedian { public: jiedian(int aa,int bb,string ss,int pp):a(aa),b(bb),s(ss),pre(pp) {} int a; int b; string s; int pre; }; bool Search[1001][1001]; int ca,cb,N; queue<jiedian> qj; vector<jiedian> jvec; void clear(int ca,int cb) { for(int i=0;i<=ca;i++) for(int j=0;j<=cb;j++) Search[i][j]=false; } void print(jiedian jd) { if(jd.pre==-1) { return; } else { print(jvec[jd.pre]); cout<<jd.s<<endl; } } void bfs(int N) { clear(ca,cb); while(!qj.empty()) qj.pop(); jvec.clear(); jiedian gen(0,0,"",-1); qj.push(gen); Search[0][0]=true; int num=0; while(!qj.empty()) { if(qj.front().b==N) { print(qj.front()); cout<<"success"<<endl; return; } if(qj.front().a!=ca&&!Search[ca][qj.front().b]) { jiedian jd(ca,qj.front().b,"fill A",num); qj.push(jd); Search[ca][qj.front().b]=true; } if(qj.front().a!=0&&qj.front().b!=0) { if(!Search[0][qj.front().b]) { jiedian jd(0,qj.front().b,"empty A",num); qj.push(jd); Search[0][qj.front().b]=true; } if(!Search[qj.front().a][0]) { jiedian jd(qj.front().a,0,"empty B",num); qj.push(jd); Search[qj.front().a][0]=true; } } if(qj.front().b!=cb&&!Search[qj.front().a][cb]) { jiedian jd(qj.front().a,cb,"fill B",num); qj.push(jd); Search[qj.front().a][cb]=true; } if(qj.front().a!=0&&qj.front().b!=cb) { if(qj.front().a+qj.front().b>cb&&!Search[qj.front().a+qj.front().b-cb][cb]) { jiedian jd(qj.front().a+qj.front().b-cb,cb,"pour A B",num); qj.push(jd); Search[qj.front().a+qj.front().b-cb][cb]=true; } if(qj.front().a+qj.front().b<=cb&&!Search[0][qj.front().a+qj.front().b]) { jiedian jd(0,qj.front().a+qj.front().b,"pour A B",num); qj.push(jd); Search[0][qj.front().a+qj.front().b]=true; } } if(qj.front().a!=ca&&qj.front().b!=0) { if(qj.front().a+qj.front().b>ca&&!Search[ca][qj.front().a+qj.front().b-ca]) { jiedian jd(ca,qj.front().a+qj.front().b-ca,"pour B A",num); qj.push(jd); Search[ca][qj.front().a+qj.front().b-ca]=true; } if(qj.front().a+qj.front().b<=ca&&!Search[qj.front().a+qj.front().b][0]) { jiedian jd(qj.front().a+qj.front().b,0,"pour B A",num); qj.push(jd); Search[qj.front().a+qj.front().b][0]=true; } } jvec.push_back(qj.front()); qj.pop(); num++; } return; } int main() { while(cin) { cin>>ca>>cb>>N; bfs(N); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator