比赛 EYOI与SBOI开学欢乐赛3rd 评测结果 AAATTTTTTT
题目名称 GodFly的寻宝之旅 最终得分 30
用户昵称 Skloud 运行时间 21.000 s
代码语言 C++ 内存使用 4.55 MiB
提交时间 2022-09-05 21:50:13
显示代码纯文本
  1. #include<cstdio>
  2. #include<iostream>
  3. using namespace std;
  4. int n,k,x,y,_;
  5. int head[20],ne[100010],v[100010],tot;
  6. int done[20];
  7. int hua,dui,f;
  8. int add(int a,int b)
  9. {
  10. v[++tot]=b;
  11. ne[tot]=head[a];
  12. head[a]=tot;
  13. }
  14. void dfs(int a,int w,int va)
  15. {
  16. if(done[a]) return;
  17. done[a]=1;
  18. if(a==n)
  19. {
  20. if((w+a*va)%2==1) dui=(dui+1)%19260817;
  21. else hua=(hua+1)%19260817;
  22. return;
  23. }
  24. for(int p=head[a];p;p=ne[p])
  25. {
  26. if(done[v[p]]) continue;
  27. dfs(v[p],(w+a*va)%2,va+a);
  28. done[v[p]]=0;
  29. }
  30. return;
  31. }
  32. int main()
  33. {
  34. freopen("GodFly.in","r",stdin);
  35. freopen("GodFly.out","w",stdout);
  36. scanf("%d%d",&n,&k);
  37. for(int i=1;i<=k;i++)
  38. {
  39. scanf("%d%d",&x,&y);
  40. add(x,y);
  41. add(y,x);
  42. }
  43. dfs(1,0,0);
  44. scanf("%d",&_);
  45. if(_) printf("%d\n",dui);
  46. else printf("%d\n",hua);
  47. return 0;
  48. }