您的位置:首页 > 其它

【Codeforces Round #362】

2016-07-18 19:19 190 查看
A. Pineapple Incident

简单模拟题,判断几种边界,再取余判断

B.
Barnicle

模拟,注意判断几种非法情况

C.
Lorenzo Von Matterhorn

最初SB,误以为是LCA,因为

1 ≤ v, u ≤ 1018
,用LCA边都没法建,所以换一种思路,因为是标准二叉树,只要不断将更大的结点除二就能实现二叉树最近祖先之间边的遍历

D.
Puzzles

通过简单计算,可以算出每个点的期望就是0.5*(1+其他所有不以该点为根的结点个数)

所以只要搜一下统计每个点做为根时结点个数就行

普遍的做法是dfs

其实有一种很简便的写法

读入每个结点的父结点下标

通过两遍循环就统计出每个结点包含自己的子孙个数sz[i]

for (int i=2;i<=n;i++) scanf("%d",p+i);
for (int i=1;i<=n;i++) sz[i]=1;
for (int i=n;i>=2;i--) sz[p[i]]+=sz[i];


E.
PLEASE

F. Legen...

DIV1

E.
...Wait for it...

F.
...Dary!

  
   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: