比赛 Asm_Def战记之透明计算网络 评测结果 WWWWWTTTTT
题目名称 Asm_Def三角形 最终得分 0
用户昵称 321Rain 运行时间 5.006 s
代码语言 C++ 内存使用 1.55 MiB
提交时间 2015-11-01 11:20:34
显示代码纯文本
  1. #include<cstdio>
  2. #include<vector>
  3. #include<iostream>
  4. #include<cstring>
  5. #include<algorithm>
  6. #include<queue>
  7. using namespace std;
  8. int m,n;
  9. vector<int>p[100010];
  10. bool vis[100100];
  11. bool pan1()
  12. {
  13. for (int i=1;i<=n;i++)
  14. {
  15. for (int j=0;j<p[i].size();j++)
  16. {
  17. int k=p[i][j];
  18. for (int l=0;l<p[k].size();l++)
  19. if (p[k][l]==i) return false;
  20. }
  21. }
  22. return true;
  23. }
  24. void dfs(int i)
  25. {
  26. vis[i]=true;
  27. for (int k=0;k<p[i].size();k++)
  28. if (!vis[p[i][k]])
  29. dfs(p[i][k]);
  30. }
  31. bool pan2()
  32. {
  33. memset(vis,0,sizeof(vis));
  34. dfs(1);
  35. for (int i=1;i<=n;i++)
  36. if (!vis[i]) return false;
  37. return true;
  38. }
  39. int main()
  40. {
  41. freopen("tria.in","r",stdin);
  42. freopen("tria.out","w",stdout);
  43. cin>>n>>m;
  44. int ans=0;
  45. if (n==3) cout<<4;
  46. else
  47. {
  48. for (int k=1;k<=n;k++)
  49. {
  50. for (int i=1;i<=n;i++)
  51. p[i].clear();
  52. for (int i=1;i<=n;i++)
  53. for (int j=1;j<=n;j++)
  54. {
  55. p[i].push_back(j);
  56. p[j].push_back(i);
  57. if (pan1()&&pan2())
  58. ans++;
  59. }
  60. }
  61. }
  62. cout<<ans;
  63. return 0;
  64. }