记录编号 575169 评测结果 AAAAAAAAAA
题目名称 van玩galgame 最终得分 100
用户昵称 Gravatarムラサメ 是否通过 通过
代码语言 C++ 运行时间 0.658 s
提交时间 2022-09-06 16:00:34 内存使用 21.84 MiB
显示代码纯文本
  1. #include<bits/stdc++.h>
  2. typedef long long ll;
  3. using namespace std;
  4. inline int read(){
  5. int x=0;bool flag=1;char ch=getchar();
  6. while(ch<'0'||ch>'9') {if(ch=='-')flag=0;ch=getchar();}
  7. while(ch>='0'&&ch<='9') {x=(x<<3)+(x<<1)+ch-'0';ch=getchar();}
  8. if(flag) return x;
  9. return ~(x-1);
  10. }
  11. const int N=1e6+50;
  12. int nc;
  13. struct TREE{
  14. ll sum;
  15. ll mx;
  16. }a[N];
  17. int hd[N];
  18. struct qxx{
  19. int ar;
  20. int nx;
  21. int val;
  22. }l[N];
  23. int lj;
  24. inline void add(int x,int y,int p){
  25. l[++lj].ar=y;
  26. l[lj].val=p;
  27. l[lj].nx=hd[x];
  28. hd[x]=lj;
  29. }
  30. void dfs(int cl){
  31. if(!hd[cl]) return;
  32. for(int i=hd[cl];i;i=l[i].nx){
  33. dfs(l[i].ar);
  34. a[cl].sum=max(a[cl].sum,max(a[cl].mx+a[l[i].ar].mx+l[i].val,a[l[i].ar].sum+l[i].val));
  35. a[cl].mx=max(a[l[i].ar].mx+l[i].val,a[cl].mx);
  36. }
  37. }
  38. int main(){
  39. freopen("galgame.in","r",stdin);
  40. freopen("galgame.out","w",stdout);
  41. ios::sync_with_stdio(0);
  42. cin.tie(0);
  43. cout.tie(0);
  44. nc=read();
  45. int s1,s2,s3;
  46. for(int i=1;i<=nc;i++){
  47. s1=read();
  48. for(int j=1;j<=s1;j++){
  49. s2=read(),s3=read();
  50. add(i,s3,s2);
  51. }
  52. }
  53. dfs(1);
  54. cout<<a[1].sum<<endl;
  55. return 0;
  56. }