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 |
水题啊。。一个DFS BFS就OK了,附代码(差点把DFS打成DNF,最近痴迷那个)Source Code Problem: 1130 User: yzhw Memory: 256K Time: 16MS Language: C++ Result: Accepted Source Code # include <iostream> # include <vector> # include <queue> # include <cstring> using namespace std; int n,target; vector<int> graph[10]; int c[10],co=0; bool used[10]; int path[100]; void dfs(int pos,int level) { if(used[pos]) return; else if(pos==0) { co++; c[0]++; for(int i=1;i<level;i++) c[path[i]]++; return; } else { used[pos]=1; path[level]=pos; for(int i=0;i<graph[pos].size();i++) dfs(graph[pos][i],level+1); used[pos]=0; return; } } int bfs() { memset(used,0,sizeof(used)); queue<int> q; q.push(target); used[target]=1; while(!q.empty()) { int pos=q.front(); q.pop(); if(c[pos]==co) return pos; for(int i=0;i<graph[pos].size();i++) if(!used[graph[pos][i]]) { used[graph[pos][i]]=1; q.push(graph[pos][i]); } } return 0; } int main() { cin>>n>>target; int t1,t2; memset(used,0,sizeof(used)); while(cin>>t1>>t2) { graph[t2].push_back(t1); } dfs(target,0); cout<<"Put guards in room "<<bfs()<<"."<<endl; // system("pause"); return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator