Advertisement
Guest User

Untitled

a guest
Feb 17th, 2020
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.78 KB | None | 0 0
  1. void DFS(int x)
  2. {
  3. viz[x]=1;
  4. cout<<x<<" ";
  5. for(int j=1;j<=n;j++)
  6. if(A[x][j]==1 && viz[j]==0)
  7. DFS(j);
  8. }
  9.  
  10.  
  11. void BFS(int x)
  12. {
  13. int c[101], p, u;
  14. c[1]=x;
  15. viz[x]=1;
  16. fout<<x<<" ";
  17. p=u=1;
  18. while(p<=u)
  19. {
  20. k=c[p++];
  21. for(int i=1;i<=n;i++)
  22. if(a[x][i]==1&&viz[i]==0)
  23. {
  24. c[++u]=i;
  25. viz[i]=1;
  26. fout<<i<<" ";
  27. }
  28. }
  29.  
  30. ComponenteConexe2
  31.  
  32. #include <fstream>
  33.  
  34. using namespace std;
  35. ifstream fin("componenteconexe2.in");
  36. ofstream fout("componenteconexe2.out");
  37. int n,m,a[101][101],viz[101];
  38. void citire()
  39. {
  40. fin>>n;
  41. int y,z;
  42. while(fin>>y>>z)
  43. if(a[y][z]==0)
  44. {
  45. m++;
  46. a[y][z]=a[z][y]=1;
  47. }
  48. }
  49. void dfs(int vf,int nr)
  50. {
  51. viz[vf]=nr;
  52. for(int j=1;j<=n;j++)
  53. if(a[vf][j]==1&&viz[j]==0)
  54. dfs(j,nr);
  55. }
  56. int main()
  57. {
  58. citire();
  59. int nr=0;
  60. for(int i=1;i<=n;i++)
  61. if(viz[i]==0)
  62. {
  63. nr++;
  64. dfs(i,nr);
  65. }
  66. int nrnoduri;
  67. for(int j=1;j<=nr;j++)
  68. {
  69. nrnoduri=0;
  70. for(int i=1;i<=n;i++)
  71. if(viz[i]==j)
  72. nrnoduri++;
  73. m-=nrnoduri-1;
  74. }
  75. fout<<m;
  76. return 0;
  77. }
  78.  
  79.  
  80.  
  81.  
  82. Roy-Warshall
  83.  
  84. #include <iostream>
  85.  
  86. using namespace std;
  87.  
  88. int n,m,a[101][101];
  89.  
  90. void citire()
  91. {
  92. int x,y;
  93. cin>>n>>m;
  94. for(int i=1;i<=m;i++)
  95. {
  96. cin>>x>>y;
  97. a[x][y]=1;
  98. }
  99. }
  100.  
  101. void RW()
  102. {
  103. for(int k=1;k<=n;k++)
  104. for(int i=1;i<=n;i++)
  105. for(int j=1;j<=n;j++)
  106. if(a[i][j]==0)
  107. a[i][j]=a[i][k]*a[k][j];
  108.  
  109.  
  110. }
  111.  
  112. void afisare()
  113. {
  114. for(int i=1;i<=n;i++)
  115. {
  116. for(int j=1;j<=n;j++)
  117. cout<<a[i][j]<<" ";
  118. cout<<'\n';
  119. }
  120. }
  121.  
  122. int main()
  123. {
  124. citire();
  125. RW();
  126. afisare();
  127. return 0;
  128. }
  129.  
  130.  
  131.  
  132. Sortare Topologica
  133.  
  134. #include <vector>
  135. #include <fstream>
  136.  
  137. using namespace std;
  138.  
  139. ifstream fin("topsort.in");
  140. ofstream fout("topsort.out");
  141.  
  142. vector<int> l[400001];
  143. bool viz[100001];
  144. int n,m, nr,p[100001],s;
  145. void citire()
  146. {
  147. int x, y;
  148. fin>>n>>m;
  149. for(int i=1; i<=m; i++)
  150. {
  151. fin>>x>>y;
  152. l[x].push_back(y);
  153. }
  154. }
  155.  
  156. void DFS(int x)
  157. {
  158. viz[x]=1;
  159. for(int i=0; i<l[x].size(); i++)
  160. if(viz[l[x][i]]==0)
  161. DFS(l[x][i]);
  162. p[++s]=x;
  163. }
  164.  
  165. int main()
  166. {
  167. citire();
  168. DFS(1);
  169. for(int i=1;i<=n;i++)
  170. if(viz[i]==0)
  171. DFS(i);
  172. for(int i=s;i>=1;i--)
  173. fout<<p[i]<<" ";
  174. return 0;
  175. }
  176.  
  177. TopSort
  178.  
  179. #include <vector>
  180. #include <fstream>
  181.  
  182. using namespace std;
  183.  
  184. ifstream fin("topsort.in");
  185. ofstream fout("topsort.out");
  186.  
  187. vector<int> l[400001];
  188. bool viz[100001];
  189. int n,m, nr,p[100001],s;
  190. void citire()
  191. {
  192. int x, y;
  193. fin>>n>>m;
  194. for(int i=1; i<=m; i++)
  195. {
  196. fin>>x>>y;
  197. l[x].push_back(y);
  198. }
  199. }
  200.  
  201. void DFS(int x)
  202. {
  203. viz[x]=1;
  204. for(int i=0; i<l[x].size(); i++)
  205. if(viz[l[x][i]]==0)
  206. DFS(l[x][i]);
  207. p[++s]=x;
  208. }
  209.  
  210. int main()
  211. {
  212. citire();
  213. DFS(1);
  214. for(int i=1;i<=n;i++)
  215. if(viz[i]==0)
  216. DFS(i);
  217. for(int i=s;i>=1;i--)
  218. fout<<p[i]<<" ";
  219. return 0;
  220. }
  221.  
  222. Turneu
  223.  
  224. #include <iostream>
  225.  
  226. using namespace std;
  227.  
  228. int a[101][101], k, n, v[101];
  229.  
  230. void citire()
  231. {
  232. int x,y;
  233. cin>>n;
  234. int z=n*(n-1)/2;
  235. for(int i=1;i<=z;i++)
  236. {
  237. cin>>x>>y;
  238. a[x][y]=1;
  239. }
  240. }
  241.  
  242. void turneu()
  243. {
  244. int p;
  245. if(a[1][2]==1)
  246. {
  247. v[1]=1;
  248. v[2]=2;
  249. }
  250. else
  251. {
  252. v[1]=2;
  253. v[2]=1;
  254. }
  255. k=2;
  256. for(int i=3;i<=n;i++)
  257. {
  258. if(a[i][v[i]]==1)
  259. p=k+1;
  260. else
  261. if(a[v[k]][i]==1)
  262. p=k+1;
  263. else
  264. {
  265. int j;
  266. for(j=1;j<k;j++)
  267. if(a[v[j]][i]==1&&a[i][v[j+1]]==1)
  268. break;
  269. p=j+1;
  270. }
  271. for(int j=k;j>=p;j--)
  272. v[j+1]=v[j];
  273. v[p]=i;
  274. k++;
  275. }
  276. }
  277.  
  278. int main()
  279. {
  280. citire();
  281. turneu();
  282. for(int i=1;i<=n;i++)
  283. cout<<v[i]<<" ";
  284. return 0;
  285. }
  286.  
  287.  
  288. DSLM
  289.  
  290. #include <fstream>
  291.  
  292. using namespace std;
  293.  
  294. ifstream fin("dslm.in");
  295.  
  296. ofstream fout("dslm.out");
  297.  
  298. int a[21][21], n, p, lmax, v[101], b[101];
  299.  
  300. void citire()
  301. {
  302. fin>>n>>p;
  303. int x,y;
  304. while(fin>>x>>y)
  305. a[x][y]=1;
  306. }
  307.  
  308. void DFS(int x, int l)
  309. {
  310. b[l]=x;
  311. for(int i=1;i<=n;i++)
  312. if(a[x][i]==1)
  313. {
  314. a[x][i]=0;
  315. DFS(i,l+1);
  316. a[x][i]=1;
  317. }
  318. if(l>lmax)
  319. {
  320. lmax=l;
  321. for(int i=1;i<=lmax;i++)
  322. v[i]=b[i];
  323. }
  324. }
  325.  
  326. int main()
  327. {
  328. citire();
  329. DFS(p,1);
  330. for(int i=1;i<=lmax;i++)
  331. fout<<v[i]<<" ";
  332. return 0;
  333. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement