ccf 201512-4送货
来源:互联网 发布:风险矩阵图案例 编辑:程序博客网 时间:2024/04/30 04:26
手动造递归
#include<iostream>#include<vector>using namespace std;int n,m,cnt;vector<int> re; char arc[10001][10001];char ar[10001][10001];int v[10001];vector<int> all[10001];vector<int> rr;int vis[10001];void dfs(int a){ for(int t=0;t<all[a].size();++t){ int i=all[a][t]; if(!vis[i]&&ar[a][i]){ vis[i]=1; ++cnt; dfs(i); } }}int main(){ cin>>n>>m; int a,b; for(int i=0;i<m;++i){ cin>>a>>b; arc[a][b]=arc[b][a]=1; ar[a][b]=ar[b][a]=1; v[a]++;v[b]++; } for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) if(arc[i][j]) all[i].push_back(j); a=b=0; for(int i=1;i<=n;++i){ if(v[i]&1){ if(!a) a=i; else if(!b) b=i; else {cout<<-1<<endl;return 0;} } if(!v[i]) {cout<<-1<<endl;return 0;} } if(a&!b) {cout<<-1<<endl;return 0;} cnt=1; vis[1]=1; dfs(1); if(cnt!=n){cout<<-1<<endl;return 0;} if(!a) a=1; re.push_back(a); int f=0; while(!re.empty()){ f=0; for(int t=0;t<all[a].size();++t){ int i=all[a][t]; if(arc[a][i]){ re.push_back(i); arc[a][i]=arc[i][a]=0; a=i; f=1; break; } } if(!f){ int e=re.back(); re.pop_back(); a=re.back(); rr.push_back(e); } } cout<<rr.back(); for(int i=m-1;i>=0;--i) cout<<" "<<rr[i]; cout<<endl;}
阅读全文
0 0
- CCF 201512-4 送货
- ccf 201512-4 送货
- CCF 201512-4 送货
- 201512-4 送货 ccf
- ccf 201512-4送货
- CCF-201512-4 送货(欧拉路径)
- CCF CSP 送货 JAVA 201512-4
- CCF 201512-4 送货(最小字典序欧拉回路)
- ccf 201512-4 送货 无向图欧拉回路
- ccf 送货
- ccf 送货
- ccf送货
- ccf 送货
- CCF 送货
- CCF送货
- CCF 送货
- CCF-CSP-2015-12-4 送货
- CCF 201512-4 送货(欧拉路径+字典序最小)
- MyBatis的criteria的or(或查询)语法
- Python 文件操作之Copy
- 树形结构数据存储方案(二)
- Codeforces Round #431 (Div. 2) 849B Tell Your World(暴力+枚举)
- springmvc可以接受的参数类型
- ccf 201512-4送货
- ccf 201509-3模板生成系统
- ccf 201509-4高速公路
- ccf 201503-4网络延时
- ccf 201412-4最优灌溉100
- ccf 201409-4最优配餐
- ccf 201403-4无线网络
- ccf 201312-5I’m stuck!
- springmvc的 自定义转换器(converter)实现方法