[FZYZOJ 2106] 备份数据

P2106 -- 备份数据

时间限制:250MS

内存限制:1024KB

Description

其实,在PXT想办法逃出机房的时候,CJK已经知道了事情的经过。整个一中的所有服务器受到了黑客的攻击,这些黑客的目的很明显——毁掉所有的成绩数据。如果成绩丢失,所有学生将会面临在寒假重新参加所有科目的考试!那将是多大的损失!看着座位旁堆得高高的书本,CJK决定拼尽全力,将数据备份下来。

风,轻轻地略过总控制室,带着沙沙的令人有一丝寒意的雨丝。光是服务器,就有50万台,每一台都存着几百G的数据……CJK不敢想了。如何把这些数据备份起来呢?

突然,他眼角瞥到一个小相框——那是他的好基友X。他们曾经无话不谈,可现在却天各一方……CJK将相框反过来,他惊奇的发现——相框的背面写着的,竟是他们以前上课无聊时,随口谈起的数据备份法。而X,竟然把它具体化了——CJK不禁泪流满面……

根据X的理论体系,把N台服务器构成树形结构,每一台服务器都有一个“父亲”和一个“数据关键字”。每个服务器的数据关键字由数据经过很强的压缩得到,都在2^32以内。当CJK执行“备份”指令的时候,从距离CJK(0号服务器)最远的服务器开始,每一台服务器通过“推送操作”:将父亲的数据关键字加上自己的数据关键字,来完成数据传输,将自己的数据移动到父亲服务器。也就是说,这是这样的一个操作:

Data[Father[i]] += Data[i];

当然,一台服务器只有自己的儿子都推送完成,才能向自己的父亲推送,所以是按照深度从大到小的顺序推送。这样一层一层上去,最后数据会汇总到CJK的服务器(编号为0,数据关键字初始为0)里。由于绝妙的压缩方式,那几千几万的数据变为一个小小的整数,一中有救了!CJK需要这个数据对2^32取模(求余)的结果,他只需要用这个数就能恢复出所有数据。

突然,CJK发现自己不能动弹了。黑客已经趁CJK陷入回忆的那一瞬间,将CJK控制锁定。时间和内存都所剩无几,CJK希望你能帮他完成这项艰巨的任务。

让我们帮助CJK,一起备份数据,解放寒假!

Input Format

第一行一个整数N,表示N台服务器。

下面N行,每行N个整数,第i行表示编号为i的服务器。

每一行两个整数,分别表示第i个服务器的父亲和数据关键字。

Output Format

一个整数,表示CJK需要的数字。

Sample Input

1
0 0

Sample Output

0

Hint

40:N <= 100

100: N <= 500 000

【题解】其实嘛,就是把所有的数据加在一起而已

而且发现数据规模非常小,没必要取模。

于是很快AC了。。。

1 #include<bits/stdc++.h>
2 using namespace std;
3 int main() {
4     int a,b,c=0;
5     scanf("%d",&a);
6     while(a--) {scanf("%*d%d",&b);c+=b;}
7     printf("%u\n",c);
8     return 0;
9 }
View Code

 

转载于:https://www.cnblogs.com/TonyNeal/p/fzyzoj2106.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值