解题思路:
链表大法好(注意,本题解并非原创)
原题解链接:https://blog.csdn.net/u010126535/article/details/19998143
利用链表的自动扩张性质,每一次输入相连接的路径时候两端都进行输入设置。
参考代码:
#include<bits/stdc++.h> using namespace std; const int maxn=100005; int n,m,ans=0; struct node{ int data; struct node *next; }tab[maxn]; int vis[maxn]; void add(int a,int b){ struct node *q =&tab[a]; while(q->next!=NULL){ q=q->next; } struct node *s; s=(struct node*)malloc(sizeof(struct node)); q->next=s; s->data=b; s->next=NULL; } void dfs(int x,int n,int s){ vis[x]=1; struct node *q=&tab[x]; if(n>=3){ ans++; return ; } while((q=q->next)!=NULL){ int w=q->data; if(vis[w]!=1||(w==s&&n==2)){ dfs(w,n+1,s); if(w!=s){ vis[w]=0; } } } } int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ tab[i].data=i; tab[i].next=NULL; } while(m--){ int x,y; cin>>x>>y; add(x,y); add(y,x); } for(int i=1;i<=n;i++){ memset(vis,0,sizeof(vis)); dfs(i,0,i); } cout<<ans<<endl; return 0; }
0.0分
0 人评分
C语言训练-大、小写问题 (C语言代码)浏览:611 |
DNA (C语言描述,数据结构)浏览:850 |
2005年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:582 |
求圆的面积 (C语言代码)浏览:1667 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:632 |
母牛的故事 (C语言代码)浏览:549 |
1012题解浏览:861 |
1118(求助_已解决)浏览:329 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:512 |
【魔板】 (C++代码)浏览:1156 |