Building Forest CodeForces - 195E

这题意真是难懂啊...话说"An oriented weighted forest is an acyclic weighted digraph in which from each vertex at most one edge goes."这句话到底什么意思...

题意:有n个点要按照1-n的顺序依次插入一个带边权的森林(森林一开始没有任何点、边),第i+1行描述第i个点插入后的操作。如果某一行为(k,  v1,  x1,  v2,  x2,  ... ,  vk,  xk),那么k表示要连的边的数量,(vj,xj)表示要从第vj个点连一条边到i,其权值为vj到其原来所在树的根节点的路径总长加上xj。(保证数据不产生重边)

做法:看懂了题,就会发现这是一个非常正常(shui)的加权并查集。

  1. #include<cstdio>
  2. #define md 1000000007
  3. typedef long long LL;
  4. LL fa[];
  5. LL hei[];//记录点i到父亲节点的路径总长
  6. LL ans,n;
  7. LL find(LL x)
  8. {
  9. if(fa[x]==x) return x;
  10. LL t=find(fa[x]);
  11. hei[x]=(hei[fa[x]]+hei[x])%md;
  12. fa[x]=t;
  13. return fa[x];
  14. }
  15. int main()
  16. {
  17. LL i,j,k,v,x,f1;
  18. scanf("%I64d",&n);
  19. for(i=;i<=n;i++)
  20. fa[i]=i;
  21. for(i=;i<=n;i++)
  22. {
  23. scanf("%I64d",&k);
  24. for(j=;j<=k;j++)
  25. {
  26. scanf("%I64d%I64d",&v,&x);
  27. f1=find(v);
  28. //if(f1==i) continue;
  29. fa[f1]=i;
  30. hei[f1]=(x+hei[v])%md;
  31. ans=(ans+hei[f1])%md;
  32. }
  33. }
  34. printf("%I64d",(ans+md)%md);
  35. return ;
  36. }

曾经犯过的错:

1.答案未取模,输出了负数(写了两次,错了两次)

2.误区:12行

  1. #include<cstdio>
  2. #define md 1000000007
  3. typedef long long LL;
  4. LL fa[];
  5. LL hei2[];//记录点i连向其父亲节点的边的权值
  6. LL hei[];//记录点i到父亲节点的路径总长
  7. LL ans,n;
  8. LL find(LL x)
  9. {
  10. if(fa[x]==x) return x;
  11. LL t=find(fa[x]);
  12. hei[x]=(hei[fa[x]]+hei2[x])%md;
  13. fa[x]=t;
  14. return fa[x];
  15. }
  16. int main()
  17. {
  18. LL i,j,k,v,x,f1;
  19. scanf("%I64d",&n);
  20. for(i=;i<=n;i++)
  21. fa[i]=i;
  22. for(i=;i<=n;i++)
  23. {
  24. scanf("%I64d",&k);
  25. for(j=;j<=k;j++)
  26. {
  27. scanf("%I64d%I64d",&v,&x);
  28. f1=find(v);
  29. if(f1==i) continue;
  30. fa[f1]=i;
  31. hei2[f1]=(x+hei[v])%md;
  32. }
  33. }
  34. for(i=;i<=n;i++)
  35. ans=(ans+hei2[i]+md)%md;
  36. printf("%I64d",ans);
  37. return ;
  38. }

Building Forest CodeForces - 195E的更多相关文章

  1. Codeforces Round #123 (Div. 2)

    A. Let's Watch Football 记时间为\(t\), 则\(bt+(b-a)c>=0\),可得\[t \ge \frac{c(a-b)}{b}\] B. After Traini ...

  2. codeforces285C

    Building Permutation CodeForces - 285C Permutation p is an ordered set of integers p1,  p2,  ...,  p ...

  3. 多校联训 DS 专题

    CF1039D You Are Given a Tree 容易发现,当 \(k\) 不断增大时,答案不断减小,且 \(k\) 的答案不超过 \(\lfloor\frac {n}{k}\rfloor\) ...

  4. Codeforces Round #192 (Div. 1) B. Biridian Forest 暴力bfs

    B. Biridian Forest Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/329/pr ...

  5. [Codeforces Round #192 (Div. 2)] D. Biridian Forest

    D. Biridian Forest time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  6. 图论/位运算 Codeforces Round #285 (Div. 2) C. Misha and Forest

    题目传送门 /* 题意:给出无向无环图,每一个点的度数和相邻点的异或和(a^b^c^....) 图论/位运算:其实这题很简单.类似拓扑排序,先把度数为1的先入对,每一次少一个度数 关键在于更新异或和, ...

  7. 水题 Codeforces Round #285 (Div. 2) C. Misha and Forest

    题目传送门 /* 题意:给出无向无环图,每一个点的度数和相邻点的异或和(a^b^c^....) 图论/位运算:其实这题很简单.类似拓扑排序,先把度数为1的先入对,每一次少一个度数 关键在于更新异或和, ...

  8. 【codeforces 755C】PolandBall and Forest

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  9. codeforces 501C. Misha and Forest 解题报告

    题目链接:http://codeforces.com/problemset/problem/501/C 题目意思:有 n 个点,编号为 0 - n-1.给出 n 个点的度数(即有多少个点跟它有边相连) ...

随机推荐

  1. 对JS闭包的理解

    闭包,是JS里很重要的一个概念,也是相对来讲不太容易理解的一个东西,不过即使难理解,我们也要迎难而上啊,嘿嘿,网上有很多文章都在讲闭包,我在看JS设计模式的时候,书里也着重讲了闭包,但是书里官方的的确 ...

  2. 对FreeMarker技术的思考

    依照静态非静态来划分网页分为两种:静态网页和非静态网页,究其优缺点而言,静态网页在用户訪问的时候响应快,可是因为里面的数据是写死的.所以致命的缺陷就是数据不能动态显示.非静态页面(如jsp)数据能够动 ...

  3. WPF数据验证(5)―― 错误模板

    <Style TargetType="{x:Type TextBox}">            <Setter Property="Validatio ...

  4. 读写ini配置文件 .

    ini文件的第一行不能是有效内容(不能为section),否则读出键值为空. INI文件是一个无固定标准格式的设置档.它以简单的文字与简单的结构组成,常常使用在视窗操作系统,或是其他操作系统上,许多程 ...

  5. BMP文件格式具体解释

    BMP文件格式具体解释(BMP file format) BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统 ...

  6. SpringMVC -- 第一个简单的程序

    学习springMVC,我们来记录下第一个HelloWord的程序 首先.我们组织须要的jar包 commons-logging-1.1.3.jar spring-aop-4.1.7.RELEASE. ...

  7. Hibernate Jar包官方下载

    1.新手入门,从官网下载Hibernate,选择 Hibernate ORM 2.选择Releases-Overview 3.上面列出的是最新版本,下面有一个see older series 直接下载 ...

  8. java8--面向对象 上(疯狂java讲义3) 复习笔记

    1.初始化块总在构造器执行之前被调用 2.静态初始化块用于初始化类,在类初始化阶段被执行 3.如果继承树里的某个类要被初始化时,系统将会同时初始化该类的所有父类 4.一旦程序员为一个类提供了构造器,系 ...

  9. jetty java文件无法删除 java文件占用 delete无效 运行时锁定静态资源的解决方法

    前几天jetty下发现java无法删除文件,文件操作后一直被jvm占用,无奈换了tomcat问题消失. 今天又想起来,尝试网上的解决方法,经本人试验,直接修改配置文件有时不能生效,具体原因不清楚,建议 ...

  10. IE8 下背景图标不显示

    如图所示 : 微博微信前方各应有个图标,但是IE8下图标没有显示 css如下 .weibo_icon{background: url(../ieImages/weibo_icon.png)no-rep ...