本文共 1121 字,大约阅读时间需要 3 分钟。
#include #include #include #include #include #include #include #include #include #include using namespace std; #define MM(a) memset(a,0,sizeof(a)) typedef long long ll; typedef unsigned long long ULL; const int mod = 1000000007; const double eps = 1e-10; const int inf = 0x3f3f3f3f; const int big=50000; ll max(int a,int b) {return a>b?a:b;}; ll min(int a,int b) {return a 0) { G[u][v]--; G[v][u]--; dfs(v); printf("%d %d\n",v,u); } } void solve() { for(int i=1;i<=50;i++) if(deg[i]%2!=0) { printf("some beads may be lost\n"); return; } int root=0; for(int i=1;i<=50;i++) if(deg[i]&&f[i]==i) root++; if(root>1) { printf("some beads may be lost\n"); return; } for(int u=1;u<=n;u++) if(deg[u]){dfs(u);return;} } int main() { scanf("%d",&cas); for(int t=1;t<=cas;t++) { scanf("%d",&n); int x,y; for(int i=1;i<=50;i++) f[i]=i; memset(G,0,sizeof(G)); memset(deg,0,sizeof(deg)); for(int i=1;i<=n;i++) { scanf("%d %d",&x,&y); G[x][y]++;G[y][x]++; deg[x]++;deg[y]++; unite(x,y); } if(t!=1) printf("\n"); printf("Case #%d\n",t); solve(); } return 0; }
转载地址:http://zxgsi.baihongyu.com/