比赛 不平凡的世界 评测结果 AWEEEWEEEE
题目名称 不平凡的许愿树 最终得分 10
用户昵称 shooter 运行时间 0.799 s
代码语言 C++ 内存使用 0.39 MiB
提交时间 2015-11-05 11:37:55
显示代码纯文本
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. #include<vector>
  5. #define mod 338
  6. using namespace std;
  7. int jic(int x){
  8. int ans=1;
  9. for(int i=2;i<=x;i++)
  10. ans*=i;
  11. return ans;
  12. }
  13. int comb(int m,int n){
  14. return ((jic(n))/(jic(m)*jic(n-m)));
  15. }
  16. struct node{
  17. node *father;
  18. vector<node*>child;
  19. node(){
  20. child.clear();
  21. this->father=NULL;
  22. }
  23. }s[5010];
  24. void addnode(int x,int y){
  25. if(s[y].father==NULL){
  26. s[y].father=&s[x];
  27. s[x].child.push_back(&s[y]);
  28. }
  29. else{
  30. if(s[x].father==NULL){
  31. s[x].father=&s[y];
  32. s[y].child.push_back(&s[x]);
  33. }
  34. }
  35. }
  36. int main(){
  37. freopen("hopetree.in","r",stdin);
  38. freopen("hopetree.out","w",stdout);
  39. int n;
  40. cin>>n;
  41. int u,v;
  42. for(int i=1;i<=n-1;i++){
  43. cin>>u>>v;
  44. addnode(u,v);
  45. }
  46. int sum=0;
  47. for(int i=1;i<=n;i++){
  48. if(s[i].father==NULL)
  49. sum+=comb(3,s[i].child.size());
  50. else
  51. sum+=comb(3,s[i].child.size()+1);
  52. sum=sum%mod;
  53. }
  54. int a1=sum%mod+1;
  55. int a2=(sum+233)%mod+1;
  56. cout<<a1<<" "<<a2;
  57. return 0;
  58. fclose(stdin);
  59. fclose(stdout);
  60. }